Jump to content
Korean Random
Kotyarko_O

Таймер ремонта модулей средствами XVM.

Recommended Posts

 

 

1. не проставляется ноль после точки при целых секундах, отчего изображение скачет
Выведу форматирование в конфиг (благодаря новой возможности в XVM). Должно будет исправиться.

 

 

 

2. на реплее при повторном крите того же модуля таймер не отображается
Можно этот реплей?

Share this post


Link to post

Short link
Share on other sites

Можно этот реплей?

те же, что ранее выкладывал.

Кстати про форматирование: пробовал так {{py:repairTimeEngine%0.1f}} получил null

И ещё заметил, что в начале отсчета может выдать типа 9.6777

Может у меня что-то не так? Проверял на последнем ночнике - там ещё и цвет пропал у статистики и в полосе здоровья...

Share this post


Link to post

Short link
Share on other sites

hi,

i can't find my bug for loading, help needed

2016-10-14 11:17:24: [JSONxLoader] load: res_mods\configs\xvm\panteror\battleLabelsTemplates.xc
2016-10-14 11:17:24: [ERROR] Traceback (most recent call last):
  File "xvm_main/config.py", line 97, in _load_xvm_xc
  File "mods/xfw/python/lib/JSONxLoader/__init__.py", line 9, in load
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 25, in load
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 44, in visit
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 69, in visit_dict
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 44, in visit
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 69, in visit_dict
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 44, in visit
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 52, in visit_dict
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 52, in <dictcomp>
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 44, in visit
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 69, in visit_dict
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 44, in visit
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 52, in visit_dict
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 52, in <dictcomp>
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 46, in visit
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 78, in visit_list
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 44, in visit
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 69, in visit_dict
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 44, in visit
  File "mods/xfw/python/lib/JSONxLoader/loader.py", line 64, in visit_dict
JSONxLoaderException: Bad reference: ${"res_mods/configs/xvm\panteror\battleLabelsTemplates.xc": "defaultItem"} in "res_mods/configs/xvm\panteror\battleLabelsTemplates.xc:battleLabels/formats[13]"
Object "./" has no key "defaultItem"

battleLabelsTemplates.xc

battleLabels.xc

Share this post


Link to post

Short link
Share on other sites

@panteror, try this:

battleLabels.xc

battleLabelsTemplates.xc

(my mistake in topic head, fixed)

 

Кстати про форматирование: пробовал так {{py:repairTimeEngine%0.1f}} получил null

А в последнем ночнике (6618+)?

 

И ещё заметил, что в начале отсчета может выдать типа 9.6777

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

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

Кстати про форматирование: пробовал так {{py:repairTimeEngine%0.1f}} получил null

Проверил, работает. Единственное, выводит "0.0" если нет значения. Надо добавить проверку на пустое значение.

Share this post


Link to post

Short link
Share on other sites

@panteror, try this:

attachicon.gifbattleLabels.xc

attachicon.gifbattleLabelsTemplates.xc

(my mistake in topic head, fixed)

 

А в последнем ночнике (6618+)?

 

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

thanks

Share this post


Link to post

Short link
Share on other sites

Надо добавить проверку на пустое значение.

Подправил форматирование (в 6619), но надо в deviceRepair.py заменить пустые значения на None:

 

вместо

...
'time': '',
...
self.TIMERS[device]['time'] = ''
self.TIMERS[device]['finishAt'] = ''

сделать так:

...
'time': None,
...
self.TIMERS[device]['time'] = None
self.TIMERS[device]['finishAt'] = None
Edited by sirmax
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

@sirmax, спасибо.

Получается недоделок не осталось?Еще вопрос по производительности,что меньше ресурса кушает,если это значение выводит флешка или данный способ(все таки 8 полей)?

Share this post


Link to post

Short link
Share on other sites
Получается недоделок не осталось?

Ещё одна есть, уже дорабатываю (http://www.koreanrandom.com/forum/topic/35275-/?p=359045, п.2).

 

Еще вопрос по производительности,что меньше ресурса кушает,если это значение выводит флешка или данный способ(все таки 8 полей)?

Поправочка: 5 полей.

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

UPD.

 

Обновил.

  • Форматирование вынесено в конфиг;
  • Исправлено отсутствие таймера при повторных выведениях из строя модулей.

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

В таких ситуациях таймер пойдёт дальше, то есть: 0.3, 0.2, 0.1, 0.0, 0.1, 0.2 и т.д. до фактического изменения состояния модуля. Конечно, можно сделать проверку, чтобы он останавливался на нуле. Как лучше: оставить как есть, потому что сейчас таймер отключается по факту изменения состояния модуля; или делать эту проверку?

Edited by Kotyarko_O
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

 

 

Но сам момент восстановления модуля, в некоторых случаях, задерживается до 0.7с
возможно, что это происходит при одновременном повреждении обеих гусениц: на реплее с тяжем, что я выкладывал, заметно, что "Гусеница восстановлена" звучит дважды (26:20-25:25) и таймер как раз "спешит"...

Share this post


Link to post

Short link
Share on other sites

возможно, что это происходит при одновременном повреждении обеих гусениц: на реплее с тяжем, что я выкладывал, заметно, что "Гусеница восстановлена" звучит дважды (26:20-25:25) и таймер как раз "спешит"...

Самая большая задержка у приборов наблюдений (0.7с). Просмотри тот момент в замедленном режиме. Анимация уже закончится (дойдёт до конца), пройдёт немного времени и произойдёт восстановление модуля. Откуда такая задержка - непонятно.

А потом посмотри, как всё ровно происходит с орудием... Точь-в-точь.

 

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

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

Самая большая задержка у приборов наблюдений (0.7с). Просмотри тот момент в замедленном режиме. Анимация уже закончится (дойдёт до конца), пройдёт немного времени и произойдёт восстановление модуля. Откуда такая задержка - непонятно.

А потом посмотри, как всё ровно происходит с орудием... Точь-в-точь.

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

Share this post


Link to post

Short link
Share on other sites
так может выставить увеличение таймера на эту задержку (которую опытным путем локализовал) для каждого модуля индивидуально?

Ну, это надо сесть и определить точную задержку у каждого модуля на замедленном реплее, потом прибавлять смещение к таймерам при отсчёте... Оно нам надо?)

 

Хотя, имхо, вообще не мешает

Солидарен.

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

 

 

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

 

 

 

Ну, это надо сесть и определить точную задержку у каждого модуля на замедленном реплее, потом прибавлять смещение к таймерам при отсчёте... Оно нам надо?)
имхо забить :)) 

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

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

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

@Kotyarko_O, вот такое скинули мне.

post-12922-0-55053200-1476458437_thumb.jpg

Видимо после моя не скидывает счётчик.

Edited by AtotIK

Share this post


Link to post

Short link
Share on other sites

 

 

Видимо после боя не скидывает счётчик.
Точно, я это не учёл. Спасибо, исправлю.

Share this post


Link to post

Short link
Share on other sites

Точно, я это не учёл. Спасибо, исправлю.

ждем

post-24956-0-85100300-1476478622_thumb.jpgpost-24956-0-56848800-1476479716_thumb.jpg

Edited by Kapany3uk

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