Jump to content
Korean Random
Meddio

Фильтрация серверов в XVM (для Login, PingServers, OnlineServers), выделение текущего сервера

Recommended Posts

Фильтрация серверов

в дополнение к ignoredServers в настройках Ping/Online в HANGAR

 

1) добавить ignoredServers в ping/online в LOGIN

не показывать пинг/онлайн для заданных серверов на экране Логина

 

2) добавить disabledServers в LOGIN

не показывать заданные серверы в выпадающем списке серверов на экране Логина и в диалоге смены сервера в Ангаре

 

название disabledServers (для выпадающего списка) вместо ignoredServers - только для исключения путаницы с ignoredServers в ping/online в LOGIN, но можно и везде одинаковое - "ignored"

 

 

Допустим, хочу убрать сервера 3,4,8,9,10 из пинга/онлайна и из выпадающих списков серверов во всех меню. Настройка выглядела бы так:

"login": {
  "disabledServers": ["RU3", "RU4", "RU8", "RU9", "RU10"],
  "pingServers":   { "ignoredServers": ["RU3", "RU4", "RU8", "RU9", "RU10"]  },
  "onlineServers": { "ignoredServers": ["RU3", "RU4", "RU8", "RU9", "RU10"]  }
}

Результат был бы таким (слева - без фильтрации, справа - с фильтрацией):

 

Экран входа:

 

screen-180526-152545.png.750070ba0b3c47bf353d2b809cf47be3.png   >  screen-180526-153029.png.e235b2e5e6077c4d1e25c82e991beb48.png

 

 

Меню в ангаре:

 

screen-180526-143825.png.3562ee2d151239af46643296a16f9ebb.png   >  screen-180526-143952.png.772e2385bf00144235e118753564904e.png

 

 

 

Посмотреть это в действии у себя в клиенте можно прямо сейчас,

закинув в \res_mods\1.0.1.1\ вот этот файл: scripts_config.xml

 

 

_____________________________________________________________________________________

 

Альтернатива

сделать общую для всего XVM настройку ignoredServers в одном месте (например в LOGIN):

тогда указанные в этом списке серверы не будут показываться во всех представлениях Ping/Online,

а также в выпадающих списках выбора сервера на экране Входа и из меню переключения сервера в Ангаре

 

_____________________________________________________________________________________

 

 

 

 

Выделение текущего сервера

сейчас есть опция markCurrentServer в ping и online в Ангаре, но ее недостаточно, при использовании стандартного шрифта разница почти незаметна.

 

конфиг default: screen-180526-155029.png.41bb2a689012498d318192456b04f37d.pngscreen-180526-155047.png.2ba49f5d4fbecce32a5d7e5f1d39a07e.png

мой конфиг: screen-180526-155405.png.c34cc0d878cecb57791ef7191b3856b8.png

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

 

Хотелось бы добавить настройки шрифта для текущего сервера.

 

Вариант настроек:

 

вместо этого:

"fontStyle": {
  "name": "$FieldFont",  "size": 12,  "bold": false,  "italic": false, 
  "color": { "great": "...", "good":  "...", "poor":  "...", "bad":   "..." },
  "markCurrentServer": "bold",
  "serverColor": ""
},

вот это:

"fontStyle": {
  "name": "$FieldFont",  "size": 12,  "bold": false,  "italic": false,
  "color": { "great": "...", "good":  "...", "poor":  "...", "bad":   "..." }, // бледные цвета для всех серверов
  "serverColor": ""
},
"currentServerFontStyle": {
  "name": "$FieldFont", /* крупнее */ "size": 13, "bold": true, "italic": false,
  "color": { "great": "...", "good":  "...", "poor":  "...", "bad":   "..." }, // яркие цвета для текущего
  "serverColor": ""
},

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

 

 

 

 

Первоначальный вариант предложения (набор серверов / автоподбор сервера / смена региона / форматирование поле пинга )

 

 


У меня давно напрашивалось несколько хотелок по упомянутым функциям XVM.

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

 

Предложение "Запоминание выбранного режима боев при переходе с сервера на сервер" тоже с этим всем сочетается.

 

Предложение по смене регионов я буду базировать на том, что увидел в моде Мультиклиент (Region changer) от ShuraBB. Надеюсь, не будет на меня в обиде. Модификация замечательная, экономит время и место на диске (если используются аккаунты в двух регионах), но некоторой интеграции с XVM не хватает. Будет или не будет это реализовано, по техническим или этическим причинам, для меня основное значение имеют пункты 1+2 из этого сообщения.

 

1. Пользовательский набор серверов

новый вариант - в сообщении по ссылке

 

старый вариант:

 

  • вместо "ignoredServers" в pingServers (hangar и login), в одном месте в конфиге (например в login) задается набор customServers
  • у нас сейчас есть 20 серверов (10 - только для RU), логичней перечислить необходимые, а не использовать "метод исключения".

    пример:
"customServers": ["RU1", "RU2", "RU5", "RU6", "RU7", "EU1", "EU2"],
    вместо:
"ignoredServers": ["RU3", "RU4", "RU8", "RU9", "RU10", "CH1", "CH2", "CH3", "CH4", "LATAM", "Singapore", "USA", "Australia"],
  • в "логин" сейчас вообще нет такой настройки, а она нужна и в ангаре, и на экране загрузки, и при смене регионов (предложение ниже)
  • этот "ограничивающий" список серверов будет использоваться:
    • при показе пинга / пользователей в ангаре (hangar) и на экране входа (login)
    • при ручном AUTOLOGIN (предложение ниже)
    • в выпадающем списке выбора серверов

 

Попробовать этот функционал можно уже сейчас:

  • ignoredServers в конфиге XVM должны быть пустыми
  • нужно взять файл scripts_config.xml из C:\Games\World_of_Tanks\res\
  • расшифровать и поместить в \res_mods\1.0.1.1\
  • убрать из него лишние элементы <host>
  • тогда и на экране загрузки, и в ангаре будут показываться "ping" и "пользователи" только для нужных серверов
  • и во всех выпадающих списках смены серверов будут только заданные в scripts_config.xml узлы

Вот именно такого поведения хочется от XVM.

 

_____________________________________________________________________________________________________________________

 

 

2. Настраиваемый авто-подбор сервера:

  • картошкин подбор сервера при выборе "Авто" иногда творит чудеса, подбирая сервер с пингом далеко за 100
  • при нормальном подходе подбор произвольного сервера нужно делать из заранее заданного пользователем набора серверов (предложение выше) исключая возможность подключения к серверам с большим пингом.
  • при включенной настройке в конфиге
    • XVM подменяет пункт "Авто" в списке выбора серверов либо добавляет новый пункт "Авто XVM"
    • во втором случае у пользователя есть выбор: "Авто" от картошки или правильный "Авто" от XVM (наверное так даже лучше)
  • в конфиге реализуется просто - одним дополнительным булевым полем useCustomServer в модуле login
  • тогда, если пользовательский массив серверов "customServers" не пуст , а в выпадающем списке серверов выбран "Авто XVM", используется авто-подбор сервера от XVM (произвольный сервер из заданного списка), а не бездумный авто-подбор из 10 серверов от Wargaming
  • можно добавить еще одно поле настроек - serverSelectionMode с такими вариантами
    • random - произвольный сервер из списка
    • best - сервер с самым низким значением PING (а если с получением данных PING наблюдаются проблемы, то опять же произвольный)
  • тогда меня не подключат по капризу WG к какому-нибудь RU10 с пингом 120, а подключат к одному из заданных мной серверов ( RU1-2-5-6-7)

 

_____________________________________________________________________________________________________________________

 

 

3. Смена региона / игрового кластера ( RU / EU и т.д. )

  • добавить в клиент сервера других кластеров (чтоб, скажем, для игры на EU не приходилось ставить отдельный клиент, который отличается только несколькими XML-ками, языковыми файлами и озвучкой voicover - общим объемом в 25 мегабайт, при полностью идентичных ресурсах карт и танков - на десятки гигабайт - картошка не удивляет)
  • использовать эти сервера для входа / переключения, отображения пинга / загруженности (сейчас с этим есть проблемы - см. скриншот ниже)
  • использовать для разных регионов разные сессии:
    • для корректного переключения в случае, когда на RU используется одна пара "почта / пароль", а на EU - другая
    • для сохранения сессий пользователь должен залогиниться на RU, отключиться от сервера, залогиниться на EU
    • а при дальнейшем переключении сервера (скажем с EU2 на RU5) должно произойти корректное переключение между регионами и аккаунтами, без ввода почты/пароля

 

_____________________________________________________________________________________________________________________

 

 

4. Запоминание выбранного режима боев при переходе с сервера на сервер

  • если на RU2 был выбран режим "Линия фронта", то при переходе на RU5 должен быть выбран режим "Линия фронта", а не "Случайный бой"
  • если будет реализована поддержка "Смены региона", то режим нужно помнить в пределах региона:
    • если RU2 - "Линия фронта", а на EU2 - "Случайный бой", то при переключении на RU5 - "Линия фронта", а на EU1 - "Случайный бой"

 

_____________________________________________________________________________________________________________________

 

 

5. Более детальная настройка внешнего вида полей пинга / пользователей (pingServers, onlineServers)

  • позже постараюсь найти чье-то подробное предложение по этому поводу (кажется, с макросами) в одной из тем
  • меня здесь скорее интересует только дополнительная настройка, позволяющая лучше выделить текущий сервер
    • сейчас есть markCurrentServer (normal, bold, italic, underline), но этого недостаточно - нужно хорошо поломать глаза, чтоб найти отличие нормального шрифта от жирного
    • хотелось бы, как минимум, настройку размера и цвета шрифта для текущего сервера

 

screen-180518-004214.png

 

На скриншоте RU2 - текущий, но догадаться об этом сразу трудновато.

А если бы RU2 отображалось большим размером или другим цветом, текущий сервер находился бы моментально.

 
 

Edited by Meddio
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Займусь, но не обещаю, что все будет в таком виде.

Share this post


Link to post

Short link
Share on other sites

Ух ты, здорово.

 

По поводу вида, это не принципиально - выше просто первый пример подробной логики, который пришел в голову, пока писал пост. Да и с настройками авто-подбора и набора серверов вышло немного запутано, названия настроек не идеальны. Если надо, постараюсь переформулировать или упростить "настройки".

 

Суть:

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

 

 

Edited by Meddio

Share this post


Link to post

Short link
Share on other sites
6 минут назад, Meddio сказал:

обозначить этот набор серверов в одном месте

 

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

Share this post


Link to post

Short link
Share on other sites

Всем привет.

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

Share this post


Link to post

Short link
Share on other sites
2 часа назад, night_dragon_on сказал:

На текущий момент в одном месте размещать не стоит.

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

 

Я как раз имел в виду не визуальное представление, а набор данных.

 

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

А представления - представление в Ангаре, представление на Экране входа, представление Виджетами где угодно - уже бы работали с этим набором данных.

 

Ну это так, просто идея, чтоб исключить дублирование настройки "списка серверов".

 

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

Например, в ангаре - только самые быстрые сервера, а на экране входа - еще и средние. Типа "хочу всех посмотреть"

 

Тогда мой вариант (список в одном месте) совсем не подходит. В общем мое дело предложить и аргументировать.

 

Откланиваюсь. Рад, что предложение заинтересовало.

 

 

 

2 часа назад, Arbalet сказал:

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

 

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

 

Поясню на примере:

 

На экране ВХОДА полно места для любого количества серверов - там у меня поместились вообще все сервера из Region changer  (пока я их не отфильтровал в scripts_config.xml) - их там штук 20 всего.

 

А место в Ангаре ограничено. Я вот пинг разместил по горизонтали над верхней панелью (где имя аккаунта, кнопка В БОЙ и т.д.) - на скриншоте выше.

Помещается только определенное кол-во серверов. Если поставить лимит в 45мс, иногда будет исчезать EU2,

либо появляться ненужные RU3 и RU4, перекрывая "Создать взвод". Кто-то размещает по вертикали под ушами ТТХ, тоже высота ограничена.

 

С кластерами вообще сложно: на RU мне пинг больше 35 вообще не подходит, а на EU - 38 - это праздник какой-то. Тут с лимитами сложно что-то сделать.

 

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

Такая опция в представлениях (или будущих виджетах) могла бы пригодиться.

 

ух, многабукав ...

Edited by Meddio

Share this post


Link to post

Short link
Share on other sites

Тут честно говоря надо всё это к некоему логически законченному виду приводить.

 

Вот берем функцию "Автоподбор сервера", по каким критериям сейчас можно вообще сервер подбирать? Их технических критериев только один - это пинг. Других на ум не приходит. Но если критерий всего один - тогда ни какого подбора не нужно, нужно просто в списке серверов сразу же выдавать их в порядке увеличения пинга и тогда первый сервер, отображаемый по умолчанию в списке окна логина и будет всегда сервером с низким пингом. Жми на вход и играй.

  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Автоподбор я не планирую делать, весьма сомнительная фича.

Насчёт списка включения и исключения, я больше склоняюсь ко второму. Как по мне, более логично отключить ненужные, чем перечислять необходимые. И новые сервера так не потеряются.

Насчёт одного клиента для разных реалмов - что делать, если версии отличаются?

Share this post


Link to post

Short link
Share on other sites

 

В 25.05.2018 в 16:48, sirmax сказал:

Автоподбор я не планирую делать, весьма сомнительная фича.

ОК, ну и ладно.

 

Цитата

Тут честно говоря надо всё это к некоему логически законченному виду приводить.

 

Ну а без автоподбора (пункт 2) предложение с серверами (пункт 1) и так сводится к логически законченному виду.

В примере буду использовать текущий исключающий принцип - ignoredServers.

 

 

1. Пользовательский набор серверов

__________________________________________________

Первый вариант исполнения - с минимумом изменений в XVM:

[ уже есть ] свой ignoredServers в Hangar ( pingServers / onlineServers )

- не показывать пинг/онлайн для заданных серверов - в Ангаре

[ хотелка ] свой ignoredServers в Login ( pingServers / onlineServers )

- не показывать пинг/онлайн для заданных серверов - на экране Логина

[ хотелка ] свой disabledServers в корне Login

- не показывать заданные серверы в выпадающем списке серверов на экране Логина и в диалоге смены сервера в Ангаре

__________________________________________________

Второй вариант - с общим списком для всего XVM:

- перенести ignoredServers в корень Login, и применять это правило везде:

- не показывать пинг/онлайн для заданных серверов - в Ангаре и на экране Логина

- не показывать заданные серверы в выпадающем списке серверов на экране Логина и в диалоге смены сервера в Ангаре

__________________________________________________

 

Думаю, Первый вариант больше подойдет народу - в каждом из модулей можно будет показывать свои серверы,

и в принципе при дефолтных настройках (с пустыми массивами ignoredServers ) для пользователей ничего не изменится.

 

 

P.S. конкретно это предложение (пункт 1 сабжа) можно отложить в самый долгий ящик - все это достижимо правкой scripts_config.xml

 

 

__________________________________________________

 

 

 

В 25.05.2018 в 16:48, sirmax сказал:

Насчёт списка включения и исключения, я больше склоняюсь ко второму.

Как по мне, более логично отключить ненужные, чем перечислять необходимые. И новые сервера так не потеряются.

 

Хех, сам уже успел настрочить упрощенное предложение именно с исключением (пост выше)

 

Цитата

Насчёт одного клиента для разных реалмов - что делать, если версии отличаются?

 

В том то и дело, что в клиентах RU и EU отличается только 20 мегабайт вспомогательных файлов.

- разные языковые файлы MO, HTML-файлы инсталлятора и туториала

- разные звуковые банки voiceover и bootcamp (за пределами PKG)

- отличия в нескольких XML-файлах (например, собственно разный набор серверов) и CFG лаунчера

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

все остальное бинарно совападает

 

или имеется в виду номер версии?

на еврофоруме пишут, что на EU могут иногда обновить максимум на день позже RU  - я такое застал только один раз

(подключаясь из свежего RU-клиента к EU-серверу, где еще патч не вышел) была какая-то адекватная текстовая ошибка сервера

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

 

Нашел еще одно отличие (которое, видимо, как раз и обеспечивают отличающиеся XML-ки)

В RU-клиенте, подключенном к EU-аккаунту показываются Рекламные окна и "Информационный листок" для RU-кластера.

К примеру, сейчас предлагают акции "Дарим золото за покупки" и "Scorpion G", которых на EU-сервере нет.

 

 

__________________________________________________

 

В ОБЩЕМ, если это все требует больших временных затрат, ну его в баню, есть гораздо более важные функции XVM.

А Мультиклиент (Region changer) от ShuraBB пока работает (хоть XVM и отказывается получать "онлайн" для нескольких кластеров одновременно).

__________________________________________________

А если найдется лишняя минутка на более наглядное выделение текущего сервера (хотелка №5), буду доволен как слон. И не я один.

Edited by Meddio

Share this post


Link to post

Short link
Share on other sites
1 час назад, Meddio сказал:

на еврофоруме пишут, что на EU могут иногда обновить максимум на день позже RU  - я такое застал только один раз

(подключаясь из свежего RU-клиента к EU-серверу, где еще патч не вышел) была какая-то адекватная текстовая ошибка сервера

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

 

Вот из-за таких штук мультиверсия клиента мне кажется сомнительной модификацией для внедрения в XVM. Вполне достаточно что есть такие отдельные моды и их поддерживают их авторы.

  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Да уж, на редкость удачная хотелка получилось :facepalmic:

 

Из пяти пунктов:

два - сомнительные фичи

один - логически не законченный вид

один - вообще не мое предложение

и один - мелкая косметика, о которой даже напоминать стыдно

 

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

И уже наверное не актуален - WG хочет "какой-то там интерфейс" менять, и может заодно и экипаж переделать до неузнаваемости.

 

Ушел с горя катать фугасы :veryhappy:

Share this post


Link to post

Short link
Share on other sites

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

Share this post


Link to post

Short link
Share on other sites

@sirmax а для этой фичи интересны только линия фронта и ранговые, на остальные можно забить, там так и так нужно собирать/искать команды открывая соответствующее окно, по запаре в рандом не уедешь. С ранговыми возможно не получается из-за того что они сейчас не активны. Сделал ЛФ и гуд, откроется сезон ранговых -  поковыряешь его.

Edited by steaxch

Share this post


Link to post

Short link
Share on other sites

хотелось один раз сделать и не возвращаться.

какие потенциально нужно запоминать?

Share this post


Link to post

Short link
Share on other sites

Отредактировал первое сообщение:

  • убрал под спойлер забракованные пункты,
  • предельно упростил предложение по фильтрации серверов, сведя к минимуму изменения в XVM (теперь полный аналог удаления лишних <host> из scripts_config.xml в клиенте, а если не будет реализовано - то ничего страшного, можно и дальше пользоваться XML-кой из клиента)
  • добавил скриншоты и примеры для конфига

 

 

Share this post


Link to post

Short link
Share on other sites
48 минут назад, sirmax сказал:

хотелось один раз сделать и не возвращаться.

какие потенциально нужно запоминать?

 

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

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

Share this post


Link to post

Short link
Share on other sites


А разве сейчас в "login"/"pingServers" и "login"/"onlineServers" нет "ignoredServers"?

Share this post


Link to post

Short link
Share on other sites
2 часа назад, sirmax сказал:

А разве сейчас в "login"/"pingServers" и "login"/"onlineServers" нет "ignoredServers"?

 

Проверил еще раз (на 8389), в конфиге default не зря нет "ignoredServers" - не работает, на экране входа показываются все серверы.

 

 

Edited by Meddio

Share this post


Link to post

Short link
Share on other sites
В 24.05.2018 в 17:02, Meddio сказал:

Выделение текущего сервера

сейчас есть опция markCurrentServer в ping и online в Ангаре, но ее недостаточно, при использовании стандартного шрифта разница почти незаметна.

Кое-что сделал, посмотри, соответствует ожиданию, или что-то надо переделать.

В 27.05.2018 в 21:09, Meddio сказал:

Проверил еще раз (на 8389), в конфиге default не зря нет "ignoredServers" - не работает, на экране входа показываются все серверы.

Сделал.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
1 час назад, sirmax сказал:

markCurrentServer > Кое-что сделал, посмотри, соответствует ожиданию, или что-то надо переделать.

Проверил. Одна строчка "currentServerFormat" - наименее раздражительный вариант (для всех, кому придется править конфиг из-за моего каприза). С ним можно комбинировать все то, что было ранее (жирность, подчеркивание, наклон) с размером, цветом (если пожертвовать цветовой градацией), и даже семейством шрифтов.

 

Вполне устраивает, благодарю. Ожиданию соответствует.

 

Edited by Meddio

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