wotunion Posted April 8, 2016 Share Posted April 8, 2016 (edited) Кастомизируемые текстовые поля в окне боевого интерфейса с поддержкой макросов и обновлений по событию UPD. Допускается подстановка глобальных макросов, личных макросов, макросов статистики для текущего игрока UPD. UPD. Добавлены глобальные макросы для отображения шансов на победу: статический {{chancesStatic}} и динамический {{chancesLive}} UPD. UPD. Поля можно обновлять по событию, пока доступны: "ON_VECHICLE_DESTROYED", "ON_BATTLE_STATE_CHANGED", ON_CURRENT_VECHICLE_DESTROYED, ON_MODULE_DESTROYED, ON_MODULE_REPAIRED UPD. Добавлена поддержка горячих клавиш (действие по нажатию/по удержанию) UPD. BattleLabels: battleLabelsTemplates.xc "formats" -----> "format" UPD. Добавлены дефолты для остальных параметров UPD. Добавлено событие: "ON_PLAYERS_HP_CHANGED" Общее подключение @xvm.xc // Battle interface text fields // Текстовые поля боевого интерфейса "battleLabels": ${"battleLabels.xc":"labels"}, battle.xc // true - enable custom labels on battle interface window // true - показывать пользовательские текстовые поля в окне боевого интерфейса "allowLabelsOnBattleInterface": true, 'battleLabels.xc' /** * List of battle interface labels. * Список текстовых полей боевого интерфейса. */ { "labels": { // Referenced labels. Note, that every custom field can be separate enabled or disabled by "enabled" switch in their settings // Подключенные текстовые поля. Обратите внимание, что кастомные поля можно отдельно отключать и включать с помощью "enabled" в их настройках "formats": [ ${ "battleLabelsTemplates.xc":"def.winChance" }, ${ "battleLabelsTemplates.xc":"def.test" }, ${ "battleLabelsTemplates.xc":"def.test2" } ] } } hotkeys.xc "battleLabelsHotKeys": true Подключение полей battleLabelsTemplates.xc /** * Battle inteface text fields. * Текстовые поля боевого интерфейса. */ { "def": { /** Set of formats fields available for configuring (default value applyed, when parameter is not defined): Набор форматов полей доступных для настройки (значение по-умолчанию применяется, если параметр не указан): ┌────────────────────────────┬────────────────────────────────────────────────────────────────────────── │ Parameters / Параметры │ Description / Описание ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "enabled" │ enable/disable field creation: true or false (default: false) │ │ включить/отключить создание полей: true or false (по-умолчанию: false) ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "updateEvent" │ event on which field updates, use with dynamic macros; to disable define null value or delete parameter; │ │ allowed events: "ON_BATTLE_STATE_CHANGED", "ON_PLAYERS_HP_CHANGED", "ON_VEHICLE_DESTROYED", "ON_CURRENT_VEHICLE_DESTROYED", "ON_MODULE_DESTROYED", "ON_MODULE_REPAIRED" │ │ событие по которому обновляется поле, используйте динамические макросы; для отключения используйте значение null или удалите параметр; │ │ доступные события: "ON_BATTLE_STATE_CHANGED", "ON_PLAYERS_HP_CHANGED", "ON_VEHICLE_DESTROYED", "ON_CURRENT_VEHICLE_DESTROYED", "ON_MODULE_DESTROYED", "ON_MODULE_REPAIRED" ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "hotKeyCode" │ keyboard key code (see list in hotkeys.xc), when pressed - switches text field to show and apply configured html in "format", or hide; │ │ when defined, text field will not be shown until key is pressed, to disable define null value or delete parameter │ │ горячие клавиши клавиатуры (список в hotkeys.xc), при нажатии - выводится текстовое поле и применяются параметры html в "format", или скрывается поле; │ │ текстовое поле не будет отображаться, пока не будет нажата клавиша, для отключения используйте значение null или удалите параметр; ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "onHold" │ take action by key click; true - while key is remains pressed (default: false) │ │ false - производит действие по разовому нажатию клавиши; true - по удержанию (по-умолчанию: false) ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "x" │ x position (macros allowed) (default: 0) │ │ положение по оси x (доступно использование макросов) (по-умолчанию: 0) ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "y" │ y position (macros allowed) (default: 0) │ │ положение по оси y (доступно использование макросов) (по-умолчанию: 0) ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "width" │ width (macros allowed) (default: 0) │ │ ширина элемента (доступно использование макросов) (по-умолчанию: 0) ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "height" │ height (macros allowed) (default: 0) │ │ высота элемента (доступно использование макросов) (по-умолчанию: 0) ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "alpha" │ transparency in percents (0..100) (macros allowed) (default: 100) │ │ прозрачность элемента, в процентах (0..100) (доступно использование макросов) (по-умолчанию: 100) ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "rotation" │ rotation in degrees (0..360) (macros allowed) (default: 0) │ │ поворот элемента, в градусах (доступно использование макросов) (по-умолчанию: 0) ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "scaleX" │ scaling axis X in % (use negative values for mirroring) (default: 100) │ │ масштабирование по оси x в % (используйте отрицательные значения для зеркального отображения) (по-умолчанию: 100) ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "scaleY" │ scaling axis Y (%, use negative values for mirroring) (default: 100) │ │ масштабирование по оси y (%, используйте отрицательные значения для зеркального отображения) (по-умолчанию: 100) ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "autoSize" │ controls automatic sizing and alignment of text fields ("none", "left" [default], "right", "center") │ │ управление автоматической настройкой размеров и выравниванием текстовых полей ("none", "left" [по-умолчанию], "right", "center") ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "align" │ horizontal alignment ("left" [default], "center", "right") │ │ горизонтальное выравнивание ("left" [по-умолчанию], "center", "right") ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "valign" │ vertical alignment ("top" [default], "center", "bottom") │ │ вертикальное выравнивание ("top" [по-умолчанию], "center", "bottom") ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "antiAliasType" │ sets anti-aliasing to advanced anti-aliasing ("advanced" [default] or "normal") │ │ задает использование расширенных возможностей сглаживания ("advanced" [по-умолчанию] or "normal") ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "bgColor" │ if set, draw background with specified color (macros allowed) (default: null) │ │ окрашивает фон в заданный цвет, если установлен (доступно использование макросов) (по-умолчанию: null) ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "borderColor" │ if set, draw border with specified color (macros allowed) (default: null) │ │ окрашивает границу в заданный цвет, если установлен (доступно использование макросов) (по-умолчанию: null) ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "shadow" │ shadow settings, defaults: │ │ настройки тени, значение по умолчанию: │ │ │ │ "shadow": { "distance": 0, "angle": 0, "color": "0x000000", "alpha": 75, "blur": 2, "strength": 1 } │----------------------------│-------------------------------------------------------------------------- │ "distance" │ distance shadow, in pixels (default: 0) │ │ дистанция тени, в пикселях (по-умолчанию: 0) │----------------------------│-------------------------------------------------------------------------- │ "angle" │ angle shadow (0.0 .. 360.0) (default: 0) │ │ угол смещения тени, в градусах (по-умолчанию: 0) │----------------------------│-------------------------------------------------------------------------- │ "color" │ color shadow ("0xXXXXXX") (default: "0x000000") │ │ цвет тени ("0xXXXXXX") (по-умолчанию: "0x000000") │----------------------------│-------------------------------------------------------------------------- │ "alpha" │ shadow alpha (0 .. 100) (default: 75) │ │ прозрачность тени (0 .. 100) (по-умолчанию: 75) │----------------------------│-------------------------------------------------------------------------- │ "blur" │ blur shadow (0.0 .. 255.0) (default: 2) │ │ эффект размывки тени (0.0 .. 255.0) (по-умолчанию: 2) │----------------------------│-------------------------------------------------------------------------- │ "strength" │ strength shadow (0.0 .. 255.0) (default: 1) │ │ интенсивность тени (0.0 .. 255.0) (по-умолчанию: 1) ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "currentFieldDefaultStyle" │ it applies global style to HTML in "format"; note, that defined font attributes in "format" override those in "currentFieldDefaultStyle" │ │ применяет глобальный стиль HTML в "format"; обратите внимание, что определенные атрибуты шрифта в "format" переопределяют "currentFieldDefaultStyle" │ │ field default styles, defaults: │ │ стандартный стиль поля, значение по умолчанию: │ │ │ │ "currentFieldDefaultStyle": { "name": "$FieldFont", "color": "0xFFFFFF", "size": 12, "align": "left", "bold": false, "italic": false, "underline": false, "display": "block", "leading": 0, "marginLeft": 0, "marginRight": 0 }, │----------------------------│-------------------------------------------------------------------------- │ "name" │ font name (default: "$FieldFont") │ │ наименование шрифта (по-умолчанию: "$FieldFont") │----------------------------│-------------------------------------------------------------------------- │ "color" │ font color ("0xXXXXXX") (default: "0xFFFFFF") │ │ цвет шрифта ("0xXXXXXX") (по-умолчанию: "0xFFFFFF") │----------------------------│-------------------------------------------------------------------------- │ "size" │ font size (default: 12) │ │ размер шрифта (по-умолчанию: 12) │----------------------------│-------------------------------------------------------------------------- │ "align" │ text alignment (left, center, right) (default: "left") │ │ выравнивание текста (left, center, right) (по-умолчанию: "left") │----------------------------│-------------------------------------------------------------------------- │ "bold" │ true - bold (default: false) │ │ true - жирный (по-умолчанию: false) │----------------------------│-------------------------------------------------------------------------- │ "italic" │ true - italic (default: false) │ │ true - курсив (по-умолчанию: false) │----------------------------│-------------------------------------------------------------------------- │ "underline" │ true - underline (default: false) │ │ true - подчеркивание (по-умолчанию: false) │----------------------------│-------------------------------------------------------------------------- │ "display" │ defines how element must be showed (inline, block [default], none) │ │ указывает как именно элемент должен быть показан (inline, block [по-умолчанию], none) │----------------------------│-------------------------------------------------------------------------- │ "leading" │ space between lines, similarly (<textformat leading='-XX'>...</textformat>) (default: 0) │ │ пространство между строками, аналогично (<textformat leading='-XX'>...</textformat>) (по-умолчанию: 0) │----------------------------│-------------------------------------------------------------------------- │ "marginLeft" │ indent left, similarly (<textformat lefMargin='XX'>...</textformat>) (default: 0) │ │ отступ слева, аналогично (<textformat lefMargin='XX'>...</textformat>) (по-умолчанию: 0) │----------------------------│-------------------------------------------------------------------------- │ "marginRight" │ indent left, similarly (<textformat rightMargin='XX'>...</textformat>) (default: 0) │ │ отступ справа, аналогично (<textformat rightMargin='XX'>...</textformat>) (по-умолчанию: 0) ├────────────────────────────┼────────────────────────────────────────────────────────────────────────── │ "format" │ displayed text field data (HTML allowed, macros allowed) (default: "") │ │ отображаемые данные в текстовых полях (доступно использование HTML и макросов) (по-умолчанию: "") └────────────────────────────┴────────────────────────────────────────────────────────────────────────── */ "winChance": { "enabled": true, "updateEvent": "ON_VEHICLE_DESTROYED", "x": 225, "y": 2, "width": 75, "height": 22, "autoSize": "center", "shadow": { "distance": 1, "angle": 90, "alpha": 80, "blur": 5, "strength": 1.5 }, "currentFieldDefaultStyle": { "color": "0xF4EFE8", "size": 15 }, "format": "{{chancesStatic}} / {{chancesLive}}" }, "test": { "enabled": true, "y": -170, "width": 200, "height": 50, "alpha": 70, "autoSize": "center", "align": "center", "valign": "bottom", "shadow": { "distance": 1, "angle": 90, "alpha": 80, "strength": 25}, "currentFieldDefaultStyle": { "color": "{{battleType=1?0x00FFFF|0xFFFF00}}", "size": 25, "align": "center", "bold": true, "leading": -1, "marginLeft": 2, "marginRight": 2 }, "format": "This is a demo of XVM text fields on battle interface. You may disable it in battle.xc<br/> Press '<font color='#60FF00'>J</font>' hot-key to show info field" }, "test2": { "enabled": true, "hotKeyCode": 36, "y": -70, "width": 310, "height": 50, "alpha": 70, "autoSize": "none", "align": "center", "valign": "bottom", "bgColor": "0x000000", "borderColor": "0x101009", "shadow": { "distance": 1, "angle": 90, "alpha": 80, "strength": 8}, "currentFieldDefaultStyle": { "color": "0x60FF00", "size": 15, "leading": -20, "marginLeft": 2, "marginRight": 2}, "format": "<font color='#FFFFFF'><p align='center'><b>Info text field (WN8: <font color='{{c:wn8}}'>{{wn8}}</font>)</b></p></font><br/>Battle tier:<font color='#ff1aff'> {{battletier}}</font><p align='right'>My vehicle: <font color='#ff1aff'>{{my-vehicle}}</font> (<font color='{{c:t-winrate}}'>{{t-winrate%2d}}%</font>)</p>" } } } "To do" Hot-keys для полей;Макросы: http://www.koreanrandom.com/forum/topic/30998-создание-произвольного-количества-кастомизир/page-4#entry323664;Также изменить параметр "formats" на "format" (в ед. числе, как везде в конфиге)Изучить вопрос с альфой шрифтаunderline надо добавитьЗаметил,что в "ON_VECHICLE_DESTROYED"(и далее где есть) слово VECHICLE с ошибкойshadow alpha (0 .. 100)spaces auto to ...timer for fieldsfix default style applyset defaults: "set defaults (done)" "enabled": false, "updateEvent": null, "hotKeyCode": null, "onHold": false, "x": 0, "y": 0, "width": 0, "height": 0, "alpha": 100, "rotation": "", "scaleX": "", "scaleY": "", "autoSize": "left", // "align": "left", // выравнивание везде лево/вверх, т.к. поле текстовое и мы не арабы :)) "valign": "top", // "antiAliasType": "advanced", "bgColor": null, "borderColor": null, "currentFieldDefaultStyle": {}, // тут уже есть наследование, поэтому оставил пусто "format": "" Edited April 24, 2016 by wotunion 14 @ Quote Link to comment Short link Share on other sites More sharing options...
Kornet_WA Posted April 8, 2016 Share Posted April 8, 2016 (edited) Можно будет что то типо этого сделать? http://www.koreanrandom.com/forum/topic/26132-infopanel-%D0%BE%D1%82-dellux-0914/?hl=infopanel или я не в ту сторону думаю? Edited April 8, 2016 by Kornet_WA @ Quote Link to comment Short link Share on other sites More sharing options...
seriych Posted April 8, 2016 Share Posted April 8, 2016 @wotunion, Это не одно и то же? "allowLabelsOnBattleInterface": true, "labels": { "enabled": true, @wotunion,Зачем плодить файлы, если все равно "шапка" у нас мелкая? Может в один сделать? { "labelsList": { "enabled": true, "formats": [ ${ "list.test1" }, ${ "list.test2" } ] }, "list": { "test1": { // }, "test2": { // } } } @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted April 8, 2016 Share Posted April 8, 2016 Можно будет что то типо этого сделать? http://www.koreanrandom.com/forum/topic/26132-infopanel-%D0%BE%D1%82-dellux-0914/?hl=infopanel или я не в ту сторону думаю? Кстати да, было бы неплохо приделать хоткеи к данным полям. Тогда можно будет на разные комбинации выводить разную информацию. @ Quote Link to comment Short link Share on other sites More sharing options...
seriych Posted April 8, 2016 Share Posted April 8, 2016 Кстати да, было бы неплохо приделать хоткеи к данным полям. Тогда можно будет на разные комбинации выводить разную информацию. По хоткеям и динамические макросы можно обновлять и соответственно добавить их без ущерба производительности? @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted April 8, 2016 Share Posted April 8, 2016 По хоткеям и динамические макросы можно обновлять и соответственно добавить их без ущерба производительности? Да. @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted April 8, 2016 Author Share Posted April 8, 2016 Зачем плодить файлы, если все равно "шапка" у нас мелкая? Может в один сделать? Потому что массив, доступ по индексу я откуда знаю какое вы название полю придумаете 1 @ Quote Link to comment Short link Share on other sites More sharing options...
goodman Posted April 8, 2016 Share Posted April 8, 2016 Допускается подстановка глобальных макросов макросы ты можешь сам создавать или Макс только? @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted April 8, 2016 Author Share Posted April 8, 2016 (edited) макросы ты можешь сам создавать или Макс только? Пока работаю глобальные макросы, но только они Еще не разбирался В первую очередь нужно сделать поддержку личных макросов (мне нужно только узнать, как проще всего получить имя игрока) и обновляемость полей Зачем плодить файлы, если все равно "шапка" у нас мелкая? Может в один сделать? и гибкости больше, можно даже сделать даже для каждого поля отдельный файл @sirmax, Код буду поддерживать, неточности исправлю если такие обнаружатся при тестировании Подскажите как проще всего получить имя текущего игрока, хочу подключить еще личные макросы Спасибо Edited April 8, 2016 by wotunion 1 @ Quote Link to comment Short link Share on other sites More sharing options...
goodman Posted April 8, 2016 Share Posted April 8, 2016 (edited) Еще не разбирался реально создать {{ping}} {{lag}} {{fps)) {{totalHP}} {{chancesLive}} ? Edited April 8, 2016 by goodman @ Quote Link to comment Short link Share on other sites More sharing options...
Kotyarko_O Posted April 8, 2016 Share Posted April 8, 2016 Подскажите как проще всего получить имя текущего игрока, хочу подключить еще личные макросы Первое, что вспомнил. @ Quote Link to comment Short link Share on other sites More sharing options...
seriych Posted April 8, 2016 Share Posted April 8, 2016 (edited) Потому что массив, доступ по индексу я откуда знаю какое вы название полю придумаете Дак у меня тоже массив. Я просто твой list переименовал в labelsList, а def перенес в тот же файл и переименовал в list (не люблю я это левое название def для всего подряд). и гибкости больше, можно даже сделать даже для каждого поля отдельный файл В моем варианте тоже самое. Мой вариант ничего в коде не меняет(ну кроме list>>labelsList)- это просто вариант, как оформить дефолтный конфиг. Пользователь может как хочет оформить, хоть переделать обратно в твой вариант, хоть по файлу на каждое поле. Edited April 8, 2016 by seriych 1 @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted April 8, 2016 Share Posted April 8, 2016 Подскажите как проще всего получить имя текущего игрока, хочу подключить еще личные макросы Похоже, сейчас нет такого, но есть Config.myVehId. Сделаю myPlayerName по аналогии. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted April 8, 2016 Author Share Posted April 8, 2016 (edited) Дак у меня тоже массив. Я просто твой list переименовал в labelsList, а def перенес в тот же файл и переименовал в list (не люблю я это левое название def для всего подряд). Да, сори, а насчет референсов - на вкус и цвет, главное структуру не потерять Но в дефолте хотелось так, как в minimapLabels, minimaplabelsTemplates, для общей однородности Обновил пулл Вечером еще раз обновлю, надо некритичные ошибки исправить Похоже, сейчас нет такого, но есть Config.myVehId. Сделаю myPlayerName по аналогии. А через net.wargaming.account, или это крутовато? Edited April 8, 2016 by wotunion 1 @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted April 8, 2016 Share Posted April 8, 2016 А через net.wargaming.account, или это крутовато? Это старый код, когда ангар еще на as2 был. @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted April 8, 2016 Author Share Posted April 8, 2016 (edited) или я не в ту сторону думаю? В ту, но такое кттс хоть по файлу на каждое поле. плюс, так и задумывалось можно беспроблемно меняться полями реально создать {{ping}} {{lag}} {{fps)) {{totalHP}} {{chancesLive}} ? По срокам моего вникания в макросы не скажу ничего пока. Там 52КБ текста Тут sirmax скорее всего будет делать исправил неточности в конфигах в шапке в соответсвии с обновленным пуллом Edited April 8, 2016 by wotunion @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted April 8, 2016 Share Posted April 8, 2016 @wotunion, а можно будет привязать логику к событиям в этих полях на питоне? @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted April 8, 2016 Author Share Posted April 8, 2016 (edited) Это не одно и то же? Исправлено, неиспользуемая настройка, переносил в battle.xc, забыл стереть а можно будет привязать логику к событиям в этих полях на питоне? Такая задумка есть, даже прописаны две неиспользуемые настройки в конфиге. На Питоне - не знаю, меня просто бесят существующие способы коммуникации python<->ActionScript Только на ActionScript - сделаю, в первую очередь, переведу шансы на победу, когда сделается макрос типа {{winchances}} Но у меня перерыв, займусь этим где-то через неделю, своей основной работы много. Edited April 8, 2016 by wotunion @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted April 8, 2016 Share Posted April 8, 2016 меня просто бесят существующие способы коммуникации python<->ActionScriptDAAPI и ExternalInterface? @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted April 8, 2016 Author Share Posted April 8, 2016 (edited) AS2: Add Config.myPlayerName супер DAAPI и ExternalInterface? именно, не знаю почему кривое оно что-ли @sirmax, small fixes. Color issue will be fixed in next commit https://bitbucket.org/wotunion/xvm/commits/c0ababe8105c8192720bf3cf32d65a02ed36a6e6?at=default К клиенту не имею доступа, вечером Edited April 8, 2016 by wotunion @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
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.