Перейти к содержимому
Korean Random
sirmax

Макросы в маркерах

Рекомендуемые сообщения

(редактировалось)

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

/**
* Options for alive with Alt markers.
* Настройки маркеров для живых с Alt.
*/
{
  // Definitions
  // Шаблоны
  "def": {
    // Floating damage values.
    // Всплывающий урон.
    "damageText": {
      // false - disable / не отображать.
      "enabled": true,
      // Axis field coordinates
      // Положение поля по осям
      "x": 0,
      "y": -67,
      // Opacity (dynamic transparency allowed, see macros.txt).
      // Прозрачность (допускается использование динамической прозрачности, см. macros.txt)
      "alpha": 100,
      // Font options.
      // Параметры шрифта.
      "textFormat": {
        "font": "$FieldFont",           // Font name      / Название
        "size": 18,                     // Font size      / Размер
        // Color (dynamic colors allowed, see macros.txt).
        // Цвет (допускается использование динамического цвета, см. macros.txt)
        "color": null,
        "align": "center",              // Text alignment (left, center, right) /   Выравнивание текста (left, center, right)
        "bold": false,                  // True - bold    / Жирный.
        "italic": false                 // True - italic  / Курсив.
      },
      // Shadow options.
      // Параметры тени.
      "shadow": {
        // false - no shadow
        // false - без тени
        "enabled": true,
        "distance": 0,                  // (in pixels)     / offset distance / дистанция смещения
        "angle": 45,                    // (0.0 .. 360.0)  / offset angle    / угол смещения
        "color": "0x000000",            // "0xXXXXXX"      / color           / цвет
        "alpha": 100,                   // (0 .. 100)      / opacity         / прозрачность
        "blur": 3,                      // (0.0 .. 255.0)  / blur            / размытие
        "strength": 1                   // (0.0 .. 255.0)  / intensity       / интенсивность
      },
      // Rising speed of displayed damage (float up speed).
      // Время отображения отлетающего урона.
      "speed": 2,
      // Maximum distance of target for which damage rises.
      // Расстояние, на которое отлетает урон.
      "maxRange": 40,
      // Text for normal damage (see description of macros in the macros.txt).
      // Текст при обычном уроне (см. описание макросов в macros.txt).
      "damageMessage": "{{dmg}}",
      // Text for ammo rack explosion (see description of macros in the macros.txt).
      // Текст при взрыве боеукладки (см. описание макросов в macros.txt).
      "blowupMessage": "{{l10n:blownUp}}\n{{dmg}}"
    },
    // Text field with the name of the player.
    // Текстовое поле с именем игрока.
    "playerName": {
      "name": "Player name",          // название текстового поля, ни на что не влияет
      "enabled": true,                // false - не отображать
      "x": 0,                         // положение по оси X
      "y": -36,                       // положение по оси Y
      "alpha": 100,                   // прозрачность (допускается использование динамической прозрачности, см. macros.txt)
      // Font options.
      // Параметры шрифта.
      "textFormat": {
        "font": "$FieldFont",         //   название
        "size": 13,                   //   размер
        "color": null,                //   цвет (допускается использование динамического цвета, см. macros.txt)
        "align": "center",            //   выравнивание текста (left, center, right)
        "bold": false,                //   обычный (false) или жирный (true)
        "italic": false               //   обычный (false) или курсив (true)
      },
      // Shadow options.
      // Параметры тени.
      "shadow": {
        // false - no shadow
        // false - без тени
        "enabled": true,
        "distance": 0,                //   дистанция смещения
        "angle": 45,                  //   угол смещения
        "color": "0x000000",          //   цвет
        "alpha": 100,                 //   прозрачность
        "blur": 6,                    //   размытие
        "strength": 2                 //   интенсивность
      },
      "format": "{{nick}}"            //   формат текста. См. описание макросов в macros.txt
    },
    // Text field with the percentage of remaining health.
    // Текстовое поле с процентом оставшегося здоровья.
    "hpPercent": {
      "name": "Percent of HP",
      "enabled": true,
      "x": 0,
      "y": -20,
      "alpha": 100,
      "textFormat": {
        "font": "$FieldFont",
        "size": 11,
        "color": "0xD9D9D9",
        "align": "center",
        "bold": true,
        "italic": false
      },
      "shadow": {
        "enabled": true,
        "distance": 0,
        "angle": 45,
        "color": "0x000000",
        "alpha": 100,
        "blur": 4,
        "strength": 1
      },
      "format": "{{hp-ratio}}% / {{hp-max}}"
    },
    // Text field with rating.
    // Текстовое поле с рейтингом.
    "rating": {
      "name": "Rating",
      "enabled": true,
      "x": 0,
      "y": -48,
      "alpha": 100,
      "textFormat": {
        "font": "$FieldFont",
        "size": 12,
        "color": "{{c:r}}",
        "align": "center",
        "bold": false,
        "italic": false
      },
      "shadow": {
        "enabled": true,
        "distance": 0,
        "angle": 45,
        "color": "0x000000",
        "alpha": 100,
        "blur": 6,
        "strength": 2
      },
      "format": "{{r}}"
    }
  },
  // Настройки для союзников.
  "ally": {
    // Type of vehicle icon (HT/MT/LT/TD/Arty).
    // Иконка типа танка (ТТ/СТ/ЛТ/ПТ/Арта).
    "vehicleIcon": {
      // false - disable / не отображать
      "enabled": true,
      // true - show speaker even if enabled=false
      // true - показывать спикер, даже если enabled=false
      "showSpeaker": false,
      // Axis field coordinates
      // Положение поля по осям
      "x": 0,
      "y": -16,
      // Opacity.
      // Прозрачность.
      "alpha": 100,
      // Maximum scale (default is 100).
      // Максимальный масштаб (по умолчанию 100).
      "maxScale": 100,
      // Offset along the X axis (?)
      // Смещение по оси X (?)
      "offsetX": 0,
      // Offset along the Y axis (?)
      // Смещение по оси Y (?)
      "offsetY": 0
    },
    // Индикатор здоровья.
    "healthBar": {
      "enabled": true,                  //   false - не отображать
      "x": -36,                         //   положение по оси X
      "y": -33,                         //   положение по оси Y
      "alpha": 100,                     //   прозрачность (допускается использование динамической прозрачности, см. macros.txt)
      "color": null,                    //   цвет основной (допускается использование динамического цвета, см. macros.txt)
      "lcolor": null,                   //   цвет дополнительный (для градиента)
      "width": 70,                      //   ширина полосы здоровья
      "height": 12,                     //   высота полосы здоровья
      // Параметры подложки и рамки.
      "border": {
        "alpha": 35,                    //     прозрачность
        "color": "0x000000",            //     цвет
        "size": 1                       //     размер рамки
      },
      // Параметры оставшегося здоровья.
      "fill": {
        "alpha": 45                     //     прозрачность
      },
      // Параметры анимации отнимаемого здоровья.
      "damage": {
        "alpha": 80,                    //     прозрачность
        "color": null,                  //     цвет
        "fade": 1                       //     время затухания в секундах
      }
    },
    // Floating damage values for ally, player, squadman.
    // Всплывающий урон для союзника, игрока, взводного.
    "damageText": {
      "$ref": { "path":"def.damageText" }
    },
    "damageTextPlayer": {
      "$ref": { "path":"def.damageText" }
    },
    "damageTextSquadman": {
      "$ref": { "path":"def.damageText" }
    },
    // Vehicle contour icon.
    // Контурная иконка танка.
    "contourIcon": {
      // false - disable / не отображать.
      "enabled": false,
      // Axis field coordinates.
      // Положение поля по осям.
      "x": 6,
      "y": -65,
      // Opacity (dynamic transparency allowed, see macros.txt).
      // Прозрачность (допускается использование динамической прозрачности, см. macros.txt).
      "alpha": 100,
      // Color (dynamic colors allowed, see macros.txt).
      // Цвет (допускается использование динамического цвета, см. macros.txt).
      "color": null,
      // Color intensity from 0 to 100. The default is 0 (off).
      // Интенсивность цвета от 0 до 100. По умолчанию 0, т.е. выключено.
      "amount": 0
    },
    // Vehicle tier.
    // Уровень танка.
    "levelIcon": {
      "enabled": false,  // false - disable        / не отображать.
      "x": 0,            // Position on the X axis / Положение по оси X.
      "y": -21,          // Position on the Y axis / Положение по оси Y.
      "alpha": 100       // Opacity                / Прозрачность.
    },
    // Markers "Help!" and "Attack!".
    // Маркеры "Нужна помощь" и "Атакую".
    "actionMarker": {
      "enabled": true,   // false - disable        / не отображать.
      "x": 0,            // Position on the X axis / Положение по оси X.
      "y": -67,          // Position on the Y axis / Положение по оси Y.
      "alpha": 100       // Opacity                / Прозрачность.
    },
    // Block of text fields.
    // Блок текстовых полей.
    "textFields": [
      ${ "def.playerName" },
      ${ "def.hpPercent" },
      ${ "def.rating" }
    ]
  },
  // Настройки для противников.
  "enemy": {
    // Type of vehicle icon (HT/MT/LT/TD/Arty).
    // Иконка типа танка (ТТ/СТ/ЛТ/ПТ/Арта).
    "vehicleIcon": {
      "enabled": true,
      "showSpeaker": false,
      "x": 0,
      "y": -16,
      "alpha": 100,
      "maxScale": 100,
      "offsetX": 0,
      "offsetY": 0
    },
    // Индикатор здоровья.
    "healthBar": {
      "enabled": true,
      "x": -36,
      "y": -33,
      "alpha": 100,
      "color": null,
      "lcolor": null,
      "width": 70,
      "height": 12,
      "border": {
        "alpha": 35,
        "color": "0x000000",
        "size": 1
      },
      "fill": {
        "alpha": 50
      },
      "damage": {
        "alpha": 80,
        "color": null,
        "fade": 1
      }
    },
    // Floating damage values for ally, player, squadman.
    // Всплывающий урон для союзника, игрока, взводного.
    "damageText": {
      "$ref": { "path":"def.damageText" }
    },
    "damageTextPlayer": {
      "$ref": { "path":"def.damageText" }
    },
    "damageTextSquadman": {
      "$ref": { "path":"def.damageText" }
    },
    // Vehicle contour icon.
    // Контурная иконка танка.
    "contourIcon": {
      "enabled": false,
      "x": 6,
      "y": -65,
      "alpha": 100,
      "color": null,
      "amount": 0
    },
    // Vehicle tier.
    // Уровень танка.
    "levelIcon": {
      "enabled": false,
      "x": 0,
      "y": -21,
      "alpha": 100
    },
    // Markers "Help!" and "Attack!".
    // Маркеры "Нужна помощь" и "Атакую".
    "actionMarker": {
      "enabled": true,
      "x": 0,
      "y": -67,
      "alpha": 100
    },
    // Block of text fields.
    // Блок текстовых полей.
    "textFields": [
      ${ "def.playerName" },
      ${ "def.hpPercent" },
      ${ "def.rating" }
    ]
  }
}
Изменено пользователем sirmax
  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

чета не понял тему... или под "в каких полях" имеется в виду " в каких блоках"? поля-то ("textFields") могут быть у всех разные, мало ли чего там понадобится...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

"поля" - это все опции нижнего уровня:

 

"enabled": true,

Тут может быть макрос? Да.

Глобальный? Да, например {{xvm-stat?true|false}} или {{r_size=2?13}}

Статический? Да, например {{ally?true|false}}

Динамический? Нет.

 

И так по всем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тут может быть макрос?

имхо макросы нужны только в текстовых полях (включая текст отлетающего урона), а в "предустановленных" опциях (левел, иконка, полоса здоровья, маркер действия) не нужно (ну только если для xmqp и то не факт - надо ещё поспрошать)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ок, мнение понятно, кто еще?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Могут понадобиться статические макросы для цвета и прозрачности иконок. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

мне надо для каждой опции наподобие тому, что я выше написал. особенно для дополнительных полей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тгода свое ИМХО напишу завтра, как доберусь до компьютера. И вопрос: опции это "x", "y", "color ", "alpha" и т.д.?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

опции это "x", "y", "color ", "alpha" и т.д.?

да

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(редактировалось)

С точки зрения баланса производительности и функциональности, полностью согласен с мнением @Kapany3uk, макросы нужны только в текстовых полях и отлетающем уроне . Кто захочет использовать макросы в "vehicleIcon", "contourIcon", "levelIcon" и т.д., смогут реализовать их через текстовые поля.

В текстовых полях для всех опций (кроме "font") нужны глобальные и статические макросы. Плюс для опций "color", "alpha", "format" нужны динамические макросы.

Изменено пользователем ktulho

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кто захочет использовать макросы в "vehicleIcon", "contourIcon", "levelIcon" и т.д., смогут реализовать их через текстовые поля.

Ок. Для всех полей секций "vehicleIcon", "healthBar", "contourIcon", "levelIcon", "actionMarker" я делаю поддержку только глобальных макросов. Они на производительность не влияют, но дают возможность делать настройки в зависимости от типа боя, или активной статы.

 

Осталось разобраться с "damageText" ("damageTextPlayer", "damageTextSquadman") и "textFields". В них нужно подробней.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Судя по активности в этой теме и отсутствием хотелок на trello, на данный момент маркеры всех устраивают. Поэтому если и стоит вводить новые возможности, то только без ущерба производительности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проблема в том, что я не помню, что там новое, а что старое. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(редактировалось)

Проблема в том, что я не помню, что там новое, а что старое. :)

Аа, действительно проблема. Похоже, выше, я погорячился, что не нужны макросы. В default конфиге цвет отнимаемого здоровья задается динамическим макросом:

    // Индикатор здоровья.
    "healthBar": {
      "visible": true,                  //   false - не отображать
      "x": -36,                         //   положение по оси X
      "y": -33,                         //   положение по оси Y
      "alpha": 100,                     //   прозрачность (допускается использование динамической прозрачности, см. macros.txt)
      "color": null,                    //   цвет основной (допускается использование динамического цвета, см. macros.txt)
      "lcolor": null,                   //   цвет дополнительный (для градиента)
      "width": 70,                      //   ширина полосы здоровья
      "height": 12,                     //   высота полосы здоровья
      // Параметры подложки и рамки.
      "border": {
        "alpha": 35,                    //     прозрачность
        "color": "0x000000",            //     цвет
        "size": 1                       //     размер рамки
      },
      // Параметры оставшегося здоровья.
      "fill": {
        "alpha": 45                     //     прозрачность
      },
      // Параметры анимации отнимаемого здоровья.
      "damage": {
        "alpha": 100,                   //     прозрачность
        "color": "{{c:dmg}}",           //     цвет
        "fade": 1                       //     время затухания в секундах
      }
    },

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

    // Text field with the XMQP event marker.
    // Текстовое поле с маркером события XMQP.
    "xmqpEvent": {
      "name": "xmqp event",           //  название текстового поля, ни на что не влияет
      "visible": true,                //  false - не отображать
      "x": 0,                         //  положение по оси X
      "y": "{{battletype?-71|{{squad?-71|-56}}}}",  //  положение по оси Y
      "alpha": 100,                   //  прозрачность (допускается использование динамической прозрачности, см. macros.txt)
      "color": "0xFFBB00",    
Изменено пользователем ktulho

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

healthBar.damage.color - какие тут кроме {{c:dmg}}, {{c:system}} и фиксированного цвета могут быть еще варианты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(редактировалось)
healthBar.damage.color - какие тут кроме {{c:dmg}}, {{c:system}} и фиксированного цвета могут быть еще варианты?

Нужны названия конкретных макросов? А я думал типы макросов. Ну тут я вряд ли помогу, у меня с фантазией плохо.

Изменено пользователем ktulho

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(редактировалось)
healthBar.damage.color - какие тут кроме {{c:dmg}}, {{c:system}} и фиксированного цвета могут быть еще варианты?

в "textFields" нужны любые макросы для "x", "y", "alpha", "color", для "enabled"- статические и глобальные.

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

на счет блоков "vehicleIcon", "contourIcon", "levelIcon", "actionMarker"- согласен с тем что выше решили.

а вот на счет "healthBar" есть давно одна мысль, чтобы можно было более гибко красить цвет в "damage", например: всем- жесткий цвет (я например в белый крашу), но если урон наносит игрок или взводный- для них свойский (динамичемкий по урону)... пока что я не знаю как такое провернуть

Изменено пользователем demon2597

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а вот на счет "healthBar" есть давно одна мысль, чтобы можно было более гибко красить цвет в "damage", например: всем- жесткий цвет (я например в белый крашу), но если урон наносит игрок или взводный- для них свойский (динамичемкий по урону)... пока что я не знаю как такое провернуть

сейчас в damage.color можно использовать любые макросы

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(редактировалось)
сейчас в damage.color можно использовать любые макросы

ну пусть так и останется. но как реализовать задумку я так и не знаю, загвоздка же в том от кого наносится урон, поэтому player и squad тут не прокатят. идея давняя, но я не нашел способа реализации, а потому просто забил и помалкивал, просто всем покрасив в белый)

Изменено пользователем demon2597

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(редактировалось)

я пользую макрос "рэди" для иконки типа техники

// Type of vehicle icon (HT/MT/LT/TD/Arty).
    // Иконка типа танка (ТТ/СТ/ЛТ/ПТ/Арта).
    "vehicleIcon": {
..
      // Opacity.
      // Прозрачность.
      "alpha": "{{ready?100|40}}",
..
    },

он относится к глобальным?

 

упд: а вопще, когда-то хотел полностью маркеры сделать прозрачными по макросу

Изменено пользователем vlad_cs_sr

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×