Jump to content
Korean Random
Meddio

XVM - Проблема с MINIMAP CIRCLES (в связке с TankRange)

TankRange в составе XVM  

63 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

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

 

В некоторых ночных и тестовых версиях XVM наблюдается проблема с модом XVM Tank Minimap Ranges или просто TankRange.

 

Автор мода мне не известен. Его уже долго обновляют от патча к патчу на Еврофоруме (ссылка), а теперь и на KoreanRandom (ссылка).

 

Принцип работы мода:

 

Работает в качестве модифицированной версии скрипта currentvehicle.pyc.

 

1) При выборе танка, смене оборудования (стереотруба, вентиляция), модулей и экипажа

мод получает реальные данные об обзоре, обзоре со Стереотрубой (если она установлена) и о дальности стрельбы (для САУ и пулеметчиков).

 

А затем записывает эти данные в специальную версию файла minimapCircles.xc.

 

'Формат файла XC'

{
  "circles": {
    "enabled": true, 
    "major": [
      { "alpha": 50, "color": "0xE0E0E0", "distance": 445, "enabled": true, "thickness": 0.75 }, 
      { "alpha": 50, "color": "0xE0E0E0", "distance": 50,  "enabled": true, "thickness": 0.75 }
    ], 
    "special": []
  }, 
  "tankrange": {
    "circle_artillery": { "alpha": 50, "color": "0xFF5C66", "enabled": true, "filled": false, "thickness": 0.75 }, 
    "circle_binocular": { "alpha": 50, "color": "0xA2EB5E", "enabled": true, "filled": false, "thickness": 0.75 }, 
    "circle_shell":     { "alpha": 50, "color": "0xFF5C66", "enabled": true, "filled": false, "thickness": 0.75 }, 
    "circle_view":      { "alpha": 50, "color": "0xF0FA64", "enabled": true, "filled": false, "thickness": 0.75 }, 
    "ignore_artillery": false, 
    "logging": false, 
    "notify_changes": true, 
    "spotting_limit": false
  }
}

'Формат записываемых данных'

"special": [
  { "usa-M40M43": { "$ref": { "path": "tankrange.circle_binocular" }, "distance": 475.0 } }, 
  { "usa-M40M43": { "$ref": { "path": "tankrange.circle_view" },      "distance": 380.0 } }, 
  { "usa-M40M43": { "$ref": { "path": "tankrange.circle_artillery" }, "distance": 1412.0 } }, 

  { "usa-T7_Combat_Car": { "$ref": { "path": "tankrange.circle_binocular" },  "distance": 338.0 } }, 
  { "usa-T7_Combat_Car": { "$ref": { "path": "tankrange.circle_view" },       "distance": 270.4 } }, 
  { "usa-T7_Combat_Car": { "$ref": { "path": "tankrange.circle_shell" },      "distance": 395.0 } }
  
  // и так далее для каждого танка, выбираемого в карусели
]

 

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

 

2) А XVM читает эти данные и отображает окружности на карте.

Для этого в активном конфиге XVM в minimap.xc ставится ссылка вида:

"circles": ${"../../tankrange.xc":"circles"},

3) в последней версии скрипта TankRange добавлена возможность указывать путь к XC в файле XML (scripts\client\currentvehicle.xml).

Т.е. XC может располагаться в любом месте и иметь любое имя. По умолчанию: \res_mods\xvm\tankrange.xc

При перемещении/переименовании нужно обновить ссылку в конфиге XVM.

 

При этом в отличие от стандартного файла minimapCircles.xc из конфига XVM с заранее записанными данными (обычно это окружности 50м и 445м + дальность стрельбы артиллерии) файл, подготовленные модом TankRange содержит обновляющуюся перед каждым боем расширенную информацию.

 

 

Суть проблемы:

В некоторых ночных и тестовых версиях XVM динамические окружности (из "special")

не отображаются в первом бою на танке (информации о котором ранее не было в XC).

 

Т.е. хронологически происходит следующее:

- пользователь выбирает танк в первый раз (когда информации о нем еще нет в XC)

- клиент исполняет модифицированный currentvehicle.pyc

- скрипт получает данные

- записывает их в файл (файл корректно закрывает) и добавляет уведомление в системный канал.

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

- но XVM в первом бою на этом танке окружности не показывает

 

Все это очень удивляет, при том, что по данным Process Monitor (от SysInternals)

- при выборе танка происходит открытие XC, запись и закрытие (очевидно, модом TankRange)

- а при заходе в бой происходит открытие, чтение и закрытие (очевидно, модом XVM)

(все это без каких либо задержек)

 

Т.е. XVM читает файл XC (в котором точно есть нужные данные), но окружности не отображает.

 

 

Еще больше запутывает то, что одни ночные сборки ведут себя описанным образом,

а другие - работают в связке с модом TankRange вполне корректно.

 

Скриншоты и тестовые архивы:

 

Для наглядности я повысил непрозрачность окружностей (выглядит не очень аккуратно).

Подопытный - T7 Combat Car.

 

Цвета:

eOE4hcZ.png

 

 

'XVM 3382 (любой бой, включая первый)'

iQIueDd.png

 

'XVM 3416 (первый бой)'

e9cr2kl.png

'XVM 3416 (второй бой и последующие)'

wgZYKZU.png

 

Во вложениях - чистые версии ночных сборок. Включен конфиг "@Default".

Добавлен только скрипт. "circles" в "minimap.xc" из "@Default" ссылается на "\res_mods\xvm\tankrange.xc"

 

 

res_mods_3382 работает должным образом.

res_mods_3416 не отображает окружности "special" в первом бою.

 

tankrange_only - только скрипт (с файлами XML и XC)

 

Благодарю за уделенное время. Надеюсь, получится выяснить причину этой проблемы.

 

 

Может быть, стоит добавить функционал этого мода в XVM?

Тогда в секции "special" вообще не было бы необходимости.

Можно было бы настроить цвета (и прочие параметры) окружностей:

- базовый обзор

- обзор с трубой

- дальность стрельбы САУ

- дальность стрельбы пулеметов

 

А все остальное XVM делал бы сам (причем без записи этих данных в конфиг).

res_mods_3382.zip

res_mods_3416.zip

tankrange_only.zip

Edited by Meddio
  • Upvote 6

Share this post


Link to post

Short link
Share on other sites
Все это очень удивляет, при том, что по данным Process Monitor (от SysInternals) - при выборе танка происходит открытие XC, запись и закрытие (очевидно, модом TankRange) - а при заходе в бой происходит открытие, чтение и закрытие (очевидно, модом XVM) (все это без каких либо задержек)

 

Вот это место удивляет больше всего, т.к. на первый взгляд описанная проблема действительно очень сильно похожа на ситуацию, когда TR пишет данные в конфиг уже после чтения его XVM-ом. Она как раз походит под описание. Но вот анализ  через Process Monitor на первый взгляд опровергает это. А третий раз он не открывается? Только два раза по монитору?

 

 

Может быть стоит добавить функционал этого мода в XVM?

 

 

Где-то уже обсуждалось, ответ был отрицательный.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

 

 

Где-то уже обсуждалось, ответ был отрицательный.

Если мне не изменяет память, то ответ был "неприоритетно".

Share this post


Link to post

Short link
Share on other sites

Если мне не изменяет память, то ответ был "неприоритетно".

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

По поводу загрузки конфига. Сейчас механизм загрузки поменялся. Конфиг грузится в AS3 модулях, а в AS2 уже передается готовый.

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

Share this post


Link to post

Short link
Share on other sites

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

По поводу загрузки конфига. Сейчас механизм загрузки поменялся. Конфиг грузится в AS3 модулях, а в AS2 уже передается готовый.

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

 

А из питона в AS он как будет попадать?

 

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

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites
Вот это место удивляет больше всего, т.к. на первый взгляд описанная проблема действительно очень сильно похожа на ситуацию,

когда TR пишет данные в конфиг уже после чтения его XVM-ом. Она как раз походит под описание.

 

Если так, то логика чтения конфига в XVM мне не понятна.

 

Эти два действия удалены друг от друга по времени. Ты можешь хоть все танки в карусели перещелкать - TankRange для каждого откроет файл, запишет и закроет.

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

 

А XVM должен (в моем представлении) читать уже готовые данные из этого файла только при заходе в бой.

 

Как при этой схеме может произойти выделенный сценарий?

 

Я бы понял ситуацию, если бы TankRange (currentvehicle) по задумке WG выполнялся только при заходе в бой.

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

 

Но нет. Currentvehicle работает в ангаре, а XVM - по пути из ангара в бой. Они никак не могут пересечься и поменяться местами.

 

Но вот анализ  через Process Monitor на первый взгляд опровергает это. А третий раз он не открывается? Только два раза по монитору?

 

И не только третий. Обращений к этому файлу - целая куча.

 

Спасибо, что спросил - как раз выяснилась причина проблемы.

 

Логи Process Monitor (по ссылкам - скриншоты по 100КБ):

 

Сборка 3382

 

Выбор нового танка (записи о котором в XC нет)

7 обращений к файлу, одно из них - с записью

 

Выбор старого танка (запись о котором есть)

6 обращений к файлу (все те же, но без записи)

 

Заход в первый бой

6 обращений к файлу (только чтение)

 

Сборка 3416

 

Выбор нового танка

7 обращений к файлу, одно из них - с записью

 

Выбор старого танка

6 обращений к файлу (все те же, но без записи)

 

Заход в первый бой

А здесь ПУСТО. Обращений к файлу НЕТ.

 

То есть получается, что вышеупомянутый выделенный сценарий "TR пишет данные в конфиг уже после чтения его XVM" происходит на самом деле.

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

Edited by Meddio

Share this post


Link to post

Short link
Share on other sites

А из питона в AS он как будет попадать?

Сейчас AS3->Python->AS2, а будет Python->(AS3,AS2)

Если так, то логика чтения конфига в XVM мне не понятна.

Конфиг читается только при входе в ангар.

Share this post


Link to post

Short link
Share on other sites

Так и подумал

 

Если так, XVM, как я понимаю, читает данные при входе в ангар (но до запуска currentvehicle, который

тоже отрабатывает и при входе в ангар, так как происходит "выбор" последнего танка), а при входе в бой - не читает.

 

Жаль. При такой схеме не получится подставить данные при смене оборудования в ангаре.

И действие мода AutoTelescope никак не проиллюстрируешь.

 

ОК, будем ждать внедрения в XVM.

Share this post


Link to post

Short link
Share on other sites
 И действие мода AutoTelescope никак не проиллюстрируешь.

В П-моде установка/демонтаж простого оборудования реализована по нажатию кнопки. В этом случае, я понимаю, с расчётом обзора проблем не возникнет?

Share this post


Link to post

Short link
Share on other sites

Возникнет.

 

Конфиг читается (модом XVM) до входа в ангар, а оборудование ставится (по кнопке, как в PMOD, или автоматически, как в AutoTelescope) уже после входа.

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

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

Снимаешь трубу - в первом бою после этого все еще видишь окружность трубы, и только во втором она пропадает.

С PMOD все понятно - поставил/снял оборудование - через один бой увидишь результат.

 

А вот результат работы AutoTelescope предугадать трудно. При выходе из боя и входе в ангар AutoTelescope снимает оборудование, а XVM читает конфиг.

От порядка, в котором они это делают, зависит, что же окажется в конфиге.

Edited by Meddio

Share this post


Link to post

Short link
Share on other sites

Конфиг читается (модом XVM) до входа в ангар, а оборудование ставится (по кнопке, как в PMOD, или автоматически, как в AutoTelescope) уже после входа.

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

Share this post


Link to post

Short link
Share on other sites

Я и не говорю, что хорошее. Но как временное решение (пока этого функционала нет в XVM) TankRange прекрасно справлялся со своей задачей.

ОК. По крайней мере ситуация прояснилась.

Share this post


Link to post

Short link
Share on other sites

I can confirm this problem....  I was was just about to release a new version of my mod pack, and I discover my mini-map circles were not working.

This seriously needs to be fixed ASAP....  A "key" function of our mods is not working and so that is a problem.  This is not a non-priority issue.

 

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

Share this post


Link to post

Short link
Share on other sites

I can confirm this problem....  I was was just about to release a new version of my mod pack, and I discover my mini-map circles were not working.

This seriously needs to be fixed ASAP....  A "key" function of our mods is not working and so that is a problem.  This is not a non-priority issue.

Logs?

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

Жаль. При такой схеме не получится подставить данные при смене оборудования в ангаре.

И действие мода AutoTelescope никак не проиллюстрируешь.

 

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

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

 

с модом авторогов работает тоже как положено. при нажатии в бой записывает танку в tankrange.xc второй круг и всё в игре показывает.

 

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

 

вот мой комплект. скрипт модифицирован немного кем-то из наших в соседней ветке. оставил телеском, танк рейндж и конфиг xvm, посмотрите

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

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

res_mods.zip

Share this post


Link to post

Short link
Share on other sites

Это Вы невнимательно читаете тему. Или просто запутались в понятиях XVM и TankRange.

 

TankRange ПОЛУЧАЕТ/ВЫЧИСЛЯЕТ и ЗАПИСЫВАЕТ информацию в файл XC при всех описанных Вами действиях.

Что оригинальный tankRange, что тот, что обновляется в теме на этом форуме. Поведение у них ОДИНАКОВОЕ.

 

Информация в файле XC ВСЕГДА актуальна.

 

Но вот поведение XVM теперь изменилось. XVM раньше читал свой конфиг (включая общий с TankRange файл XC)

перед заходом в бой, а теперь читает эту информацию ТОЛЬКО ПРИ ВХОДЕ В АНГАР.

 

Комментарий разработчика - пост #7.

 

И если со времени входа в ангар конфигурация танка изменится, XVM при входе в очередной бой

(не прочитав свежую информацию из XC) будет пользоваться старыми данными.

 

Но при выходе из боя и входе в ангар прочитает файл XC и обновит информацию.

 

Перечитайте эту тему и последние страницы темы TankRange еще раз, прежде чем делать подобные "выводы".

 

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

Edited by Meddio

Share this post


Link to post

Short link
Share on other sites

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

 

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

Edited by hat3k

Share this post


Link to post

Short link
Share on other sites

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

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

Share this post


Link to post

Short link
Share on other sites

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

http://www.koreanrandom.com/forum/topic/14743-xvm-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0-%D1%81-minimap-circles-%D0%B2-%D1%81%D0%B2%D1%8F%D0%B7%D0%BA%D0%B5-%D1%81-tankrange/?do=findComment&comment=175609

Share this post


Link to post

Short link
Share on other sites

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