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

Фото

[Сниппеты / Snippets] Расширенная настройка боевого интерфейса


  • Чтобы отвечать, сперва войдите на форум
2150 ответов в теме

#1 sirmax

sirmax

    [XVM] Разработчик

  •  XVM Team
  • 13 172 сообщений
  • Nick: sirmax2
  • WoT Server:RU (Русский)

Опубликовано 18 Октябрь 2012 - 18:59

Я между делом переделал настройку элементов управления, и такая охрененная штука получилась! Можно настроить ООООЧЕНЬ многое через конфиг, совершенно не пересобирая код. Поддерживаются все объекты, начиная с _root, можно выводить в лог значения различных объектов, причем с разным уровнем вложенности, можно использовать математические выражения!!! и переменные в них.
 
Вот, например, передвинул счетчик боя, изменил в нем шрифт, подровнял двоеточие:
Прикрепленный файл  shot_002.jpg   374,18 Кб   3 раз скачано
 
Делается это вот таким кодом:
snippet-bt.xc
{
  //"$log": 1,             // команда $log используется для вывода значений в лог, число - уровень вложенности
  "def": {
    "tf": {                    // подстановка для формата текста
      //"$log": 1,             // тоже можно логгировать
      "size": 30,              // размер шрифта
      "font": "$TitleFont",    // шрифт пожирнее        
      "align": "center"        // выравнивание
    }
  },
  "battleTimer": {             // будем править таймер - объект _root.battleTimer
    //"_x": "$log",            // можно логгировать отдельное значение (_x, к примеру, только так можно вывести)
    "_x": "WIDTH / 2",         // установить X по середине экрана. будет работать при любом разрешении
    "_y": 50,                  // установить Y на 50 сверху
    "dotsMC": {                // TextField: точки
      "_x": "-80/2",           // центрируем
      "_y": "-3",              // выравниваем точки относительно цифр
      "_height": 100,          // высота (с запасом)
      "_width": 80,            // ширина (с запасом)
      "text": ":",
      "$textFormat": ${"def.tf"}
    },
    "secondsMC": {             // TextField: секунды
      "_x": 5,                 // выравнивание влево, поэтому x = 5
      "_height": 100,          // высота (с запасом)
      "_width": 80,            // ширина (с запасом)
      "$textFormat": { "$ref": { "path": "def.tf" }, "align": "left" } // формат текста с выравниванием влево
    },
    "minutesMC": {             // TextField: минуты
      "_x": -85,               // выравнивание вправо, поэтому x = -(width+5)
      "_height": 100,          // высота (с запасом)
      "_width": 80,            // ширина (с запасом)
      "$textFormat": { "$ref": { "path": "def.tf" }, "align": "right" } // формат текста с выравниванием вправо
    }
  }
}
При разборе мат. выражений используются контексты - это массив объектов, которые можно использоваться для переменных. Ищутся переменные в контекстах по очереди - не нашли в одном, ищем дальше.
Список используемых контекстов:Можно использовать иерархию объектов, если написать через ".":
"_x": "minimap._x - 20" - установить координату на 20 пикселей левее миникарты (теоретически).
 
 
Подключается это в battle.xc:
{
  "battle": {
    ...
    "elements": [ ${"snippet-bt.xc":"."} ]
  }
}
Так как это массив, сниппеты подключаются по очереди, и их может быть сколько угодно.
 
Есть набор команд в сниппетах:
"$log": N - отобразить поля текущего объекта на глубину N (не рекомендую ставить более 2-3, будет очень долго)
"$delay": N - запустить сниппет с задержкой в N мсек
"$interval": N - периодически запускать сниппет с интервалом в N мсек
 
Например, классическая задача по установке ушей в нужное состояние в начале боя выглядит так:
sirmax-snippet-pp.xc
{
  "$delay": 100,
  "leftPanel": { "state": "short" },
  "rightPanel": { "state": "short" }
}
Можно даже установить разные режимы для ушей.
 
Очень удобно создавать отдельные сниппеты в отдельных файлах, и подключать их таким образом:
"elements": [
    ${"sirmax-snippet-bt.xc":"."}, // battle timer
    ${"sirmax-snippet-pp.xc":"."}  // players panels
  ],
В этом случае можно сделать репозиторий сниппетов, и обмениваться ими.
 
Основные элементы интерфейса (данный сниппет их отключает):
{
  "$delay": 100, // задержка в 100 мсек, чтобы все успело инициализироваться
  "leftPanel": { "state": "none" },          // панель уши левые
  "rightPanel": { "state": "none" },         // панель уши правые
  "minimap": { "_alpha": 0 },                // миникарта
  "playerMessangersPanel": { "_alpha": 0 },  // сообщения чат убитых(кто кого убил)
  "switcher_mc": { "_alpha": 0 },            // панель переключения ушей
  "fragCorrelationBar": { "_alpha": 0 },     // счёт боя
  "debugPanel": { "_alpha": 0 },             // пинг-лаг-фпс панель
  "battleTimer": { "_alpha": 0 },            // время боя
  "damagePanel": { "_alpha": 0 },            // дамаг-панель
  "sixthSenseIndicator": { "_alpha": 0 },    // индикатор(шестое чувство)
  "vehicleErrorsPanel": { "_alpha": 0 },     // сообщения в центре экрана(о снаряжении, командире)
  "messenger": { "_alpha": 0 },              // сообщения(чат что пишут игроки)
  "damageInfoPanel": { "_alpha": 0 },        // ?
  "timerBig": { "_alpha": 0 },               // таймер до начала боя
  "deathZoneTimer": { "_alpha": 0 },         // ?
  "overturnedTimer": { "_alpha": 0 },        // ?
  "drownTimer": { "_alpha": 0 },             // таймер когда тонет танк
  "langBarPanel": { "_alpha": 0 },           // ?
  "consumablesPanel": { "_alpha": 0 },       // панель расходники и патроны
  "vehicleMessagesPanel": { "_alpha": 0 },   // сообщения внизу в центре экрана(о том,кто попал,повредил тебя)
  "teamBasesPanel": { "_alpha": 0 }          // полоса захвата баз
}
Возможностей реально открывается огромное количество. Старые настройки - это ничто по сравнению с этим.
 
 
Вот результат работы сниппета { "$log": 2 }, выводящего лог значений элементов в _root до второго уровня:

 
Положение элементов на экране:

Изменено: sirmax, 22 Апрель 2014 - 19:14

  • 18

#2 booch_124

booch_124
  • Пользователь
  • 625 сообщений
  • Nick: booch_124
  • WoT Server:RU (Русский)
  • Город: Киев

Опубликовано 22 Октябрь 2012 - 22:37

sirmax а можно как то расшифровать названия?
ну лично для меня не все понятны что делают.
например: overturnedTimer, teamBasesPanel, langBarPane, drownTimer, deathZoneTimer, vehicleErrorsPanel
fragCorrelationBar не смещал бы не куда, но предлагаю, если конечно можно, сделать, что б можно было выбирать отсчет по убитым или по оставшимся в живых.
из тех что понял, не стал бы перемещать: fragCorrelationBar, minimap, damagePanel, sixthSenseIndicator
  • 1

#3 EngIand

EngIand
  • Пользователь
  • 124 сообщений
  • Nick: EngIand
  • WoT Server:NA (American)

Опубликовано 22 Октябрь 2012 - 23:19

parlais vous anglais ? que ?
  • 0

#4 sirmax

sirmax

    [XVM] Разработчик

  •  XVM Team
  • 13 172 сообщений
  • Nick: sirmax2
  • WoT Server:RU (Русский)

Опубликовано 22 Октябрь 2012 - 23:42

Ждем серафима, как основного заказчика данной фичи.
  • 0

#5 7serafim7

7serafim7
  • Пользователь
  • 162 сообщений
  • Nick: Djaa_Budda
  • WoT Server:RU (Русский)

Опубликовано 23 Октябрь 2012 - 11:40

Ждем серафима, как основного заказчика данной фичи.

Сорь,я тут на работу только устроился и переехал в другой город,со временем туго пока совсем...ещё пару недель в таком режиме буду.
По настройке:
из нужного к примеру мне постоянно это minimap,playerMessangersPanel(сообщения об уничтожении)
Многие юзают интерфейс смещёный к вверху экрана,это fragCorrelationBar,rightPanel,leftPanel,switcher_mc,battleTimer,debugpanel
Ну и consumablesPanel не помешает тем кто делает панельку хп по центру.
Вот это максимум что нужно на мой взгляд из элементов,а насчёт настроек самих...координаты да выравнивание основное,остальное по мере возможности и сил:)

Изменено: 7serafim7, 23 Октябрь 2012 - 13:27

  • 0

#6 Mr 13

Mr 13
  • Administrator
  • 8 203 сообщений

Опубликовано 23 Октябрь 2012 - 13:24

А я бы и лампочку подвигал.
  • 0

#7 7serafim7

7serafim7
  • Пользователь
  • 162 сообщений
  • Nick: Djaa_Budda
  • WoT Server:RU (Русский)

Опубликовано 23 Октябрь 2012 - 13:36

Ну,кто-то может захотеть и сообщения о критах подвигать)
  • 0

#8 sirmax

sirmax

    [XVM] Разработчик

  •  XVM Team
  • 13 172 сообщений
  • Nick: sirmax2
  • WoT Server:RU (Русский)

Опубликовано 23 Октябрь 2012 - 14:21

Ок, сделаю перечисленное, если надо будет еще что-то, добавлю.
В редакторе это делать не буду. Он будет сохранять их в конфиге, но кому это надо, поправит вручную.

В общем, в каком-то виде оно работает, пока весьма сырое.
Надо потестировать, решить, стоит ли оно вообще усилий.
В общий конфиг добавлять настройки не буду, кто хочет поиграться, добавьте этот блок в секцию "battle":
        // Visual elements
        "elements": {
		  // x - X position
		  // y - Y position
		  // w - width
		  // h - height
		  // a - alpha
		  // ha - horizontal align
		  // va - vertical align
		  // debug - draw border, element name and geometry
		  // x, y values can be:
		  //   null - use default client value
		  //   -xxxx..xxxx
		  //   xx.xx%
		  // ha values can be:
		  //   null - use default client value
		  //   1 - left
		  //   2 - right
		  // va values can be:
		  //   null - use default client value
		  //   1 - top
		  //   2 - bottom
          "minimap":			   { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
          "playerMessangersPanel": { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
          "leftPanel":			 { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
          "rightPanel":		    { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
          "switcher_mc":		   { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
          "fragCorrelationBar":    { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
          "debugPanel":		    { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
          "battleTimer":		   { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
          "damagePanel":		   { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
          "sixthSenseIndicator":   { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
          "vehicleErrorsPanel":    { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false }
        }

Пишите сюда глюки, буду доделывать. Там есть вопросы, которые нужно обсудить, пока не хочу на этом заострять внимание, поэтому решим все постепенно.
  • 3

#9 7serafim7

7serafim7
  • Пользователь
  • 162 сообщений
  • Nick: Djaa_Budda
  • WoT Server:RU (Русский)

Опубликовано 23 Октябрь 2012 - 14:27

Я к сожалению потестить не могу...ибо неначем пока,у меня тут всё только рабочее еле живое,нет смысла танки ставить((
  • 0

#10 sirmax

sirmax

    [XVM] Разработчик

  •  XVM Team
  • 13 172 сообщений
  • Nick: sirmax2
  • WoT Server:RU (Русский)

Опубликовано 23 Октябрь 2012 - 14:42

Не горит.
  • 0

#11 Fix

Fix
  • Пользователь
  • 235 сообщений
  • Nick: Fix-RGB -5
  • WoT Server:RU (Русский)

Опубликовано 24 Октябрь 2012 - 00:21

Ок, сделаю перечисленное, если надо будет еще что-то, добавлю.
В редакторе это делать не буду. Он будет сохранять их в конфиге, но кому это надо, поправит вручную.

В общем, в каком-то виде оно работает, пока весьма сырое.
Надо потестировать, решить, стоит ли оно вообще усилий.
В общий конфиг добавлять настройки не буду, кто хочет поиграться, добавьте этот блок в секцию "battle":

// Visual elements
"elements": {
		 // x - X position
		 // y - Y position
		 // w - width
		 // h - height
		 // a - alpha
		 // ha - horizontal align
		 // va - vertical align
		 // debug - draw border, element name and geometry
		 // x, y values can be:
		 // null - use default client value
		 // -xxxx..xxxx
		 // xx.xx%
		 // ha values can be:
		 // null - use default client value
		 // 1 - left
		 // 2 - right
		 // va values can be:
		 // null - use default client value
		 // 1 - top
		 // 2 - bottom
"minimap":			 { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
"playerMessangersPanel": { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
"leftPanel":			 { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
"rightPanel":		 { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
"switcher_mc":		 { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
"fragCorrelationBar": { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
"debugPanel":		 { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
"battleTimer":		 { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
"damagePanel":		 { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
"sixthSenseIndicator": { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false },
"vehicleErrorsPanel": { "x":null, "y":null, "w":null, "h":null, "ha":null, "va":null, "a":null, "debug":false }
}

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

очень нужная штука для меня потому что многое я передвинул бы для себя -только вот не умею я вписывать это в конфиг .Пацаны если не трудно кто нибудь впишите мне эту фишку в конфиг мой а двигать я умею .буду на небе от счастья .заранние благодарю ..PS Конфиг прилагаю

Прикрепленные файлы:

  • Прикрепленный файл  XVM.xvmconf   69,02 Кб   266 раз скачано

  • 1

#12 Конь-Огонь

Конь-Огонь
  • Пользователь
  • 601 сообщений

Опубликовано 24 Октябрь 2012 - 18:50

Ну,кто-то может захотеть и сообщения о критах подвигать)


Да! Я бы их на самое видное место выдвинул чтоб сразу видеть от кого и по чему наполучал)
  • 0

#13 booch_124

booch_124
  • Пользователь
  • 625 сообщений
  • Nick: booch_124
  • WoT Server:RU (Русский)
  • Город: Киев

Опубликовано 24 Октябрь 2012 - 20:11

+1 а то не всегда успеваешь посмотреть вниз, а потом оно пропало уже
  • 0

#14 tolikportnoy

tolikportnoy
  • Пользователь
  • 48 сообщений
  • Nick: tolikportnoy
  • WoT Server:RU (Русский)
  • Skype: tolikportnoy
  • Город: Владимир

Опубликовано 03 Ноябрь 2012 - 15:30

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

Изменено: tolikportnoy, 03 Ноябрь 2012 - 19:54

  • 0

#15 sirmax

sirmax

    [XVM] Разработчик

  •  XVM Team
  • 13 172 сообщений
  • Nick: sirmax2
  • WoT Server:RU (Русский)

Опубликовано 03 Ноябрь 2012 - 19:49

Вот эти элементы не включены:
//		  timerBig:			  { x:null, y:null, w:null, h:null, ha:null, va:null, a:null, debug:false },
//		  damageInfoPanel:	   { x:null, y:null, w:null, h:null, ha:null, va:null, a:null, debug:false },
//		  deathZoneTimer:	    { x:null, y:null, w:null, h:null, ha:null, va:null, a:null, debug:false },
//		  overturnedTimer:	   { x:null, y:null, w:null, h:null, ha:null, va:null, a:null, debug:false },
//		  drownTimer:		    { x:null, y:null, w:null, h:null, ha:null, va:null, a:null, debug:false },
//		  langBarPanel:		  { x:null, y:null, w:null, h:null, ha:null, va:null, a:null, debug:false },
//		  consumablesPanel:	  { x:null, y:null, w:null, h:null, ha:null, va:null, a:null, debug:false },
//		  vehicleMessagesPanel:  { x:null, y:null, w:null, h:null, ha:null, va:null, a:null, debug:false },
//		  messenger:			 { x:null, y:null, w:null, h:null, ha:null, va:null, a:null, debug:false },
//		  teamBasesPanel:	    { x:null, y:null, w:null, h:null, ha:null, va:null, a:null, debug:false }
Какие добавить?

upd: в общем все добавил, кому-то может и пригодится. будет в следующем тесте
  • 1

#16 tolikportnoy

tolikportnoy
  • Пользователь
  • 48 сообщений
  • Nick: tolikportnoy
  • WoT Server:RU (Русский)
  • Skype: tolikportnoy
  • Город: Владимир

Опубликовано 03 Ноябрь 2012 - 19:51

messenger,teamBasesPanel
а остальные, я просто не знаю за что они отвечают))

upd: в общем все добавил, кому-то может и пригодится. будет в следующем тесте

Спасибо)))

Изменено: tolikportnoy, 03 Ноябрь 2012 - 19:57

  • 0

#17 ApxuBbI

ApxuBbI
  • Пользователь
  • 736 сообщений
  • Nick: ApxuBbI
  • WoT Server:RU (Русский), EU (European)

Опубликовано 04 Ноябрь 2012 - 21:20

Как убрать у DebugPanel счетчик FPS, если возможно.

Изменено: ApxuBbI, 04 Ноябрь 2012 - 21:46

  • 0

#18 sirmax

sirmax

    [XVM] Разработчик

  •  XVM Team
  • 13 172 сообщений
  • Nick: sirmax2
  • WoT Server:RU (Русский)

Опубликовано 05 Ноябрь 2012 - 08:15

Как убрать у DebugPanel счетчик FPS, если возможно.

В XVM никак.
  • 0

#19 VicKing

VicKing

    Ветеран

  • Premium Member
  • 2 423 сообщений
  • Nick: OldVicKing
  • WoT Server:RU (Русский)
  • Город: Никополь, Украина

Опубликовано 13 Ноябрь 2012 - 19:12

Как убрать у DebugPanel счетчик FPS, если возможно.

зато можно всю панельку убрать :)
да, кстати что-то тут совсем затихли, никто не пользуется настройкой интерфейса? ну да ладно, покажу что можно сделать
- можно сдвинуть панели пинга-лага и таймера, и поднять уши
Прикрепленный файл  WorldOfTanks 2012-11-13 19-45-42-39.JPG   294,55 Кб   1081 раз скачано

- а можно и совсем панельку пинго-лага убрать
Прикрепленный файл  WorldOfTanks 2012-11-13 19-58-24-60.JPG   289,72 Кб   901 раз скачано
  • 1

#20 Fix

Fix
  • Пользователь
  • 235 сообщений
  • Nick: Fix-RGB -5
  • WoT Server:RU (Русский)

Опубликовано 13 Ноябрь 2012 - 20:05

зато можно всю панельку убрать :)
да, кстати что-то тут совсем затихли, никто не пользуется настройкой интерфейса? ну да ладно, покажу что можно сделать
- можно сдвинуть панели пинга-лага и таймера, и поднять уши
Прикрепленный файл  WorldOfTanks 2012-11-13 19-45-42-39.JPG   294,55 Кб   1081 раз скачано

- а можно и совсем панельку пинго-лага убрать
Прикрепленный файл  WorldOfTanks 2012-11-13 19-58-24-60.JPG   289,72 Кб   901 раз скачано

вещьь класная только VicKing подскажи плиз где параметр сообщений чата где я пишу я бы подвигал его .
и если можно подробнее что вот это за элементы
vehicleErrorsPanel
damageInfoPanel
deathZoneTimer
overturnedTimer
drownTimer
langBarPanel
switcher_mc
consumablesPanel
vehicleMessagesPanel
  • 0





0 пользователей читают эту тему

0 зарегистрированных, 0 гостей, 0 невидимых

© Mr 13