Jump to content
Korean Random
wotunion

Кастомизируемые текстовые поля в окне боевого интерфейса

Опрос  

22 members have voted

You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.

Recommended Posts

 

 

Оно уже в to do в шапке
сорь, не посмотрел, ну отлично тогда 

Share this post


Link to post

Short link
Share on other sites

 

 

сорь, не посмотрел, ну отлично тогда 
 

 

На данный момент комбинации клавиш не поддерживаются в hotkeys.xc?

Share this post


Link to post

Short link
Share on other sites

 

 

Я обновил уже, файлы готовы для отправки
It would be great to add a description in Russian (in battleLabelsTemplates.xc) 

Google/Yandex Translators forever  :ok:

Share this post


Link to post

Short link
Share on other sites
На данный момент комбинации клавиш не поддерживаются в hotkeys.xc?

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

Edited by demon2597

Share this post


Link to post

Short link
Share on other sites

 

 

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

 

Делаю пока одиночные, но привязываться к hotkeys.xc не буду, настройка хоткеев - в battleLabelsTemplates.xc


 

 

It would be great to add a description in Russian (in battleLabelsTemplates.xc) 
 

I hope we translate it before release)

Share this post


Link to post

Short link
Share on other sites

 

 

I hope we translate it before release)
:heh: 

 

 

Делаю пока одиночные, но привязываться к hotkeys.xc не буду
Опция "onhold": true/false будет? имхо просто необходима

Share this post


Link to post

Short link
Share on other sites
Опция "onhold": true/false будет? имхо просто необходима

 

Навскидку, должна быть, не должно быть с ним проблем, но тест покажет. Чего не будет - комбинаций клавиш

Код почти готов, еще тестировать надо

В коммите, из интересного, будут новые ивенты и хоткеи

 

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

Получается, что добавив макросы имен игроков и их фрагов, можно даже уши свои сделать, всего двумя полями

 

P.S. можно и в hotkeys.xc добавлять кеи для полей, но, имхо, это слишком неудобно, сделана настройка для поля в battleLabelsTemplates.xc. Функционал от этого не пострадает

 

Насчет нецифрового представления кодов клавиш - это лишний код и лишнее время исполнения, можно такое маленькое неудобство перетерпеть).

Edited by wotunion
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
It would be great to add a description in Russian (in battleLabelsTemplates.xc)  Google/Yandex Translators forever 
I hope we translate it before release)

 

Готово, немного иное представление, в табличной форме:

 

battleLabelsTemplates.xc

/**
  Set of formats fields available for configuring:
  Набор форматов полей доступных для настройки:
┌────────────────────────────┬──────────────────────────────────────────────────────────────────────────
│ Parametrs                  │ Description
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "enabled"                  │ enable/disable field creation: true or false
│                            │ включить/отключить создание полей: true or false
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "updateEvent"              │ event on which field updates, use with dynamic macros
│                            │ to disable define null value; allowed events: "ON_VECHICLE_DESTROYED"
│                            │ сорбытие по которому обновляется поле, используйте динамические макросы
│                            │ для отключения используйте значение null; доступные события: "ON_VECHICLE_DESTROYED"
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "hotKey"                   │ keyboard key code (see list in hotkeys.xc), when pressed - switches text field to show and apply configured html in "formats", or hide;
│                            │ when defined, text field will not be shown until key is pressed, to disable define null value // IN DEVELOPMENT
│                            │ горячие клавиши клавиатуры (список в hotkeys.xc), при нажатии - выводится текстовое поле и применяются параметры html в "formats", или скрывается поле;
│                            │ текстовое поле не будет отображаться, пока не будет нажата клавиша, для отключения используйте значение null // В РАЗРАБОТКЕ
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "x"                        │ x position (macros allowed)
│                            │ положение по оси x (доступно использование макросов)
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "y"                        │ y position (macros allowed)
│                            │ положение по оси y (доступно использование макросов)
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "width"                    │ width (macros allowed)
│                            │ ширина элемента (доступно использование макросов)
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "height"                   │ height (macros allowed)
│                            │ высота элемента (доступно использование макросов)
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "alpha"                    │ transparency in percents (0..100) (macros allowed)
│                            │ прозрачность элемента, в процентах (0..100) (доступно использование макросов)
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "rotation"                 │ rotation in degrees (0..360) (macros allowed)
│                            │ поворот элемента, в градусах (доступно использование макросов)
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "scaleX"                   │ scaling (use negative values for mirroring)
│                            │ масштабирование по оси x (используйте отрицательные значения для зеркального отображения )
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "scaleY"                   │ scaling (use negative values for mirroring)
│                            │ масштабирование по оси y (используйте отрицательные значения для зеркального отображения )
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "autoSize"                 │ controls automatic sizing and alignment of text fields ("none" [default], "left", "right", "center")
│                            │ управление автоматической настройкой размеров и выравниванием текстовых полей ("none" [default], "left", "right", "center")
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "align"                    │ horizontal alignment ("left", "center", "right")
│                            │ горизонтальное выравнивание ("left", "center", "right")
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "valign"                   │ vertical alignment ("top", "center", "bottom")
│                            │ вертикальное выравнивание ("top", "center", "bottom")
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "antiAliasType"            │ sets anti-aliasing to advanced anti-aliasing ("advanced" or "normal")
│                            │ задает использование расширенных возможностей сглаживания ("advanced" or "normal")
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "background"               │ enable/disable background creation: true or false
│                            │ включить/отключить создание фона: true or false
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "bgColor"                  │ if set, draw background with specified color (macros allowed)
│                            │ окрашивает фон в заданный цвет, если установлен (доступно использование макросов)
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "border"                   │ enable/disable border creation: true or false
│                            │ включить/отключить создание границы вокруг элемента: true or false
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "borderColor"              │ if set, draw border with specified color (macros allowed)
│                            │ окрашивает границу в заданный цвет, если установлен (доступно использование макросов)
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "shadow"                   │ shadow settings, defaults:
│                            │ настройки тени, значение по умолчанию:
│                            │
│                            │ "shadow": { "distance": 0, "angle": 0, "color": "0x000000", "alpha": 0.75, "blur": 2, "strength": 1 }
│----------------------------│--------------------------------------------------------------------------
│ "distance"                 │ distance shadow, in pixels
│                            │ дистанция тени, в пикселях
│----------------------------│--------------------------------------------------------------------------
│ "angle"                    │ angle shadow (0.0 .. 360.0)
│                            │ угол смещения тени, в градусах
│----------------------------│--------------------------------------------------------------------------
│ "color"                    │ color shadow ("0xXXXXXX")
│                            │ цвет тени ("0xXXXXXX")
│----------------------------│--------------------------------------------------------------------------
│ "alpha"                    │ alpha shadow (0.0 .. 1.0)
│                            │ прозрачность тени (0.0 .. 1.0)
│----------------------------│--------------------------------------------------------------------------
│ "blur"                     │ blur shadow (0.0 .. 255.0)
│                            │ эффект размывки тени (0.0 .. 255.0)
│----------------------------│--------------------------------------------------------------------------
│ "strength"                 │ strength shadow (0.0 .. 255.0)
│                            │ интенсивность тени (0.0 .. 255.0)
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "currentFieldDefaultStyle" │ Field default styles. It applies global style to html in "formats".
│                            │ Note, that defined font attributes in "formats" override those in "currentFieldDefaultStyle"
│                            │ Стандартный стиль поля. Применяет глобальный стиль HTML в "formats".
│                            │ Обратите внимание, что определенные атрибуты шрифта в "formats" переопределяют "currentFieldDefaultStyle"
│                            │
│                            │ "currentFieldDefaultStyle": { "name": "$FieldFont", "color": "0xFFFFFF", "size": 15, "align": "left", "bold": false, "italic": false, "display": "block", "leading": -5, "marginLeft": 2, "marginRight": 2 },
│----------------------------│--------------------------------------------------------------------------
│ "name"                     │ font name
│                            │ наименование шрифта
│----------------------------│--------------------------------------------------------------------------
│ "color"                    │ font color ("0xXXXXXX")
│                            │ цвет шрифта ("0xXXXXXX")
│----------------------------│--------------------------------------------------------------------------
│ "size"                     │ font size
│                            │ размер шрифта
│----------------------------│--------------------------------------------------------------------------
│ "align"                    │ text alignment (left, center, right)
│                            │ выравнивание текста (left, center, right)
│----------------------------│--------------------------------------------------------------------------
│ "bold"                     │ true - bold
│                            │ true - жирный
│----------------------------│--------------------------------------------------------------------------
│ "italic"                   │ true - italic
│                            │ true - курсив
│----------------------------│--------------------------------------------------------------------------
│ "display"                  │ required for align to work
│                            │ требуется для работы выравнивания
│----------------------------│--------------------------------------------------------------------------
│ "leading"                  │ space between lines, similarly (<textformat leading='-5'>...</textformat>)
│                            │ пространство между строками, аналогично (<textformat leading='-5'>...</textformat>)
│----------------------------│--------------------------------------------------------------------------
│ "marginLeft"               │ indent left, similarly (<textformat lefMargin='2'>...</textformat>)
│                            │ отступ слева, аналогично (<textformat lefMargin='2'>...</textformat>)
│----------------------------│--------------------------------------------------------------------------
│ "marginRight"              │ indent left, similarly (<textformat rightMargin='2'>...</textformat>)
│                            │ отступ справа, аналогично (<textformat rightMargin='2'>...</textformat>)
├────────────────────────────┼──────────────────────────────────────────────────────────────────────────
│ "formats"                  │ displayed text field data (HTML allowed, macros allowed)
│                            │ отображаемые данные в текстовых полях (доступно использование HTML и макросов)
└────────────────────────────┴──────────────────────────────────────────────────────────────────────────
*/

  Edited by night_dragon_on
  • Upvote 3

Share this post


Link to post

Short link
Share on other sites
немного иное представление, в табличной форме

сдаётся мне, что ты не работал никогда в лексиконе:)) там это было фичей :heh: и да, виндовс тогда не существовал.)

Edited by goodman

Share this post


Link to post

Short link
Share on other sites
немного иное представление, в табличной форме

Уважаю потраченное время, но на ноутбучных экранах (1366х768) некоторые строки "ползут" и вся прелесть таблички теряется... А если смотреть в редакторе с сайд-баром, то не некоторые, а каждая вторая... Как вариант "подрезать" по ширине горизонтальных полосок...

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

А если смотреть в редакторе с сайд-баром, то не некоторые, а каждая вторая...

 

В каком месте, вот отображение:

 

'В стандартном блокноте'

 

614ff61ffc00.png

 

'Notepad++'

 

e18e148f8437.png

 

 

В табличках в macros.txt и macros_ru.txt полоски не меньше

 

сдаётся мне, что ты не работал никогда в лексиконе:))

 

'оффтоп'

 

Да, не доводилось  :gg:

 

Edited by night_dragon_on

Share this post


Link to post

Short link
Share on other sites

В каком месте, вот отображение

Ну так перенос строк отключен (видно по горизонтальному скроллингу), а я имел ввиду "влезает" в видимую область, с "переносом строк"

'Npp'

post-24956-0-58128200-1460479081_thumb.png

'Sublime'

post-24956-0-22619400-1460479089_thumb.png

'macros.txt в Sublime'

post-24956-0-66660600-1460479085_thumb.png

я насчет *.txt файлов не парюсь - их смотришь один раз в полгода, а с *.xc каждый день работать :))

Share this post


Link to post

Short link
Share on other sites
а я имел ввиду "влезает" в видимую область, с "переносом строк"

 

В чем проблема то, отключите перенос строк. Все унифицировано с видом таблицы в доках.

И по умолчанию и в блокноте и и нотпаде перенос отключен.

Edited by night_dragon_on

Share this post


Link to post

Short link
Share on other sites

В чем проблема то, отключите перенос строк. Все сделано аналогично виду таблицы в доках.

И по умолчанию и в блокноте и и нотпаде перенос отключен. 

в XCPad съезжает - многие именно в нем конфиги редактируют (я имею ввиду простых юзверов). 

post-24956-0-19778700-1460480478_thumb.png

 

'upd'

думаю не стоит париться вообще - я просто обратил внимание на некоторую "особенность" а-ля табличного вывода, а в будущем, уверен, кто-нить (возможно camrad_osten) обязательно запуллят более универсальный вариант :)
Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

в XCPad съезжает - многие именно в нем конфиги редактируют. 

 

Тут тоже доводы не убедительны, первый раз открыл его на компе, результат:

 

XCPad

 

950a7c6e214d.png

 

 

И в нем опция "Перенос длинных строк" - по умолчанию отключена.

 

уверен, кто-нить обязательно запуллят более универсальный вариант :)

 

Он и сейчас "универсален", в каждом редакторе (упоминающихся на форуме в темах по редактированию конфигураций: блокнот, нотпад++, XCPad) "по умолчанию" перенос строк отключен. 

Edited by night_dragon_on
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
Подожди, я питоновские макросы сделаю. Только послезавтра, 2 дня буду занят.

 

 

Можно еще заодно здесь:

 

xvm.py

        c = config.get('hotkeys')

        if (c['minimapZoom']['enabled'] is True and c['minimapZoom']['keyCode'] == key):
            return True
        if (c['minimapAltMode']['enabled'] is True and c['minimapAltMode']['keyCode'] == key):
            return True
        if (c['playersPanelAltMode']['enabled'] is True and c['playersPanelAltMode']['keyCode'] == key):
            return True

проверить значение "battleLabelsHotKeys" в hotkeys.xc и если true, разрешить все кейкоды, указанные в "hotKeyCode" для каждого поля в battleLabelsTemplates.xc если 'enabled' поля == true

 

Еле нашел почему не все события отдавались в xvm_onKeyEvent))

 

 

 

Опция "onhold": true/false будет? имхо просто необходима
 

онхолд работает, но надо еще в питоне разрешать коды, а то сейчас ограничена отдача событий клавиш настройкам кодов минкарты и альтернативного режима в hotkeys.xc

Edited by wotunion

Share this post


Link to post

Short link
Share on other sites

Можно еще заодно здесь:

...

разрешить все кейкоды

Посмотрю вечером
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Еще расскажу логику по хоткеям и ивентам, чтобы после не возникало вопросов

 

Глобальный переключатель досутупности хоткеев для текстовых полей находится в hotkeys.xc

"battleLabelsHotKeys": true

Он нужен их соображений производительности, т.е. если Вы не используете хоткеи, лучше отключить. Если отключено, не будет генерироваться ивент для полей

 

В конкретном поле вкл/выкл хоткея это: указание цифрового кода / null или ""

"hotKeyCode": 36
или
"hotKeyCode": null
или
"hotKeyCode": ""

Прослушиватель клавиатурных событий для поля не создается, если ни один хоткей не указан

 

С onHold для поля тут понятно.

"onHold": false | true

По ивентам

 

Для каждого уникального ивента, указанного в активном поле в battleLabelsTemplates.xc, создается один прослушиватель событий. Нужно страться выбирать по возможности самые менее ресурсоемкие события (менне генерируемые в конкретный отрезок времени). Не стоит выбирать разные события для разных полей, если достигаемый результат один.

 

Поля обновляются таргетированно при появлении события, т.е., только те поля, где такое событие прописано

 

Поля, которым назначен хоткей не появятся при старте, работают только по кнопке.

 

Обновление поля с хоткеями происходит только при нажатиии хоткея.

Edited by wotunion

Share this post


Link to post

Short link
Share on other sites

 

 

Прослушиватель клавиатурных событий для поля не создается, если ни один хоткей не указан
Поведение/состояние хоткея при "" и null одинаковое? Какой вариант предпочтительнее в плане влияния на производительность?

Share this post


Link to post

Short link
Share on other sites
Поведение/состояние хоткея при "" и null одинаковое? Какой вариант предпочтительнее в плане влияния на производительность?

 

 

Одинаковое, хоткей отключен

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

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

 

Такое же поле, но с хоткеем, предпочтительнее

 

Это теория, практика покажет

Какие события еще нужны, пожелания?

Edited by wotunion

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...