Kotyarko_O 1,906 Posted October 13, 2016 (edited) Таймер ремонта модулей. Bitbucket: https://bitbucket.org/Kotyarko_O/wot-xvm.py_macro/src/master/ Установка: 'battleLabelsTemplates.xc' // Rewritable default format // Перезаписываемый формат по-умолчанию "repairTimeItem": { "width": 47, "height": 40, "screenHAlign": "left", "screenVAlign": "bottom", "shadow": { "distance": 1, "angle": 90, "alpha": 90, "blur": 5, "strength": 4 }, "textFormat": { "color": "0xF4EFE8", "size": 17, "align": "center", "valign": "center" } }, // Repair timer for engine // Таймер ремонта двигателя "repairTimeEngine": { "$ref": { "path":"def.repairTimeItem" }, "enabled": true, "updateEvent": "PY(ON_ENGINE_UPDATE)", "x": 4, "y": -141, "format": "<b>{{py:repairTimeEngine}}</b>" }, // Repair timer for gun // Таймер ремонта орудия "repairTimeGun": { "$ref": { "path":"def.repairTimeItem" }, "enabled": true, "updateEvent": "PY(ON_GUN_UPDATE)", "x": 4, "y": -63, "format": "<b>{{py:repairTimeGun}}</b>" }, // Repair timer for turret rotator // Таймер ремонта механизма поворота башни "repairTimeTurret": { "$ref": { "path":"def.repairTimeItem" }, "enabled": true, "updateEvent": "PY(ON_TURRETROTATOR_UPDATE)", "x": 4, "y": -24, "format": "<b>{{py:repairTimeTurret}}</b>" }, // Repair timer for complex-items (chassis\wheels) // Таймер ремонта для гусениц\колёс "repairTimeComplex": { "$ref": { "path":"def.repairTimeItem" }, "enabled": true, "updateEvent": "PY(ON_COMPLEX_UPDATE)", "x": 177, "y": -141, "format": "<b>{{py:repairTimeComplex}}</b>" }, // Repair timer for surveying device // Таймер ремонта приборов наблюдения "repairTimeSurveying": { "$ref": { "path":"def.repairTimeItem" }, "enabled": true, "updateEvent": "PY(ON_SURVEYINGDEVICE_UPDATE)", "x": 177, "y": -102, "format": "<b>{{py:repairTimeSurveying}}</b>" }, // Repair timer for radio // Таймер ремонта радиостанции "repairTimeRadio": { "$ref": { "path":"def.repairTimeItem" }, "enabled": true, "updateEvent": "PY(ON_RADIO_UPDATE)", "x": 177, "y": -63, "format": "<b>{{py:repairTimeRadio}}</b>" } 'battleLabels.xc' ${ "battleLabelsTemplates.xc":"def.repairTimeEngine" }, ${ "battleLabelsTemplates.xc":"def.repairTimeGun" }, ${ "battleLabelsTemplates.xc":"def.repairTimeTurret" }, ${ "battleLabelsTemplates.xc":"def.repairTimeComplex" }, ${ "battleLabelsTemplates.xc":"def.repairTimeSurveying" }, ${ "battleLabelsTemplates.xc":"def.repairTimeRadio" } Содержимое архива распаковать в "res_mods\configs\xvm\py_macro": repairTime.rar Аддон доступен в дефолтной поставке XVM. Примечания: Объяснение несоответствия отображаемого времени ремонта с фактическим моментом ремонта модуля: https://bugs.wargaming.net/issues/17069#change-41705 Edited August 8, 2020 by Kotyarko_O 39 Quote Share this post Link to post Short link Share on other sites
BuSH 174 #358922 Posted October 13, 2016 (edited) Таймер ремонта. Подогнано пока что только для гусениц. И таймер не полноценный, но для начала сойдёт, я думаю. Сходу не взлетело... 2016-10-13 17:29:07: [ERROR] Traceback (most recent call last): File "xvm_main/python_macro.py", line 154, in process_python_macro File "xvm_main/python_macro.py", line 141, in get_function ValueError: Function syntax error: repairingTime arg='repairingTime' в battleLabels.xc ссылку не забыли добавить?Та всё есть: релизная версия xvm`а стоит? Если да, то там функции должны быть в другом формате, заканчиваться скобками. 2016-10-13 17:28:47: xvm 0.9.16 (http://www.modxvm.com/) for WoT 0.9.16 2016-10-13 17:28:47: Branch: default, Revision: 6577 "format": "{{py:repairingTime()}}"Вот так работает. Спасибо. Edited October 13, 2016 by BuSH Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #358924 Posted October 13, 2016 @BuSH, в battleLabels.xc ссылку не забыли добавить? Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #358928 Posted October 13, 2016 (edited) @BuSH, релизная версия xvm`а стоит? Если да, то там функции должны быть в другом формате, заканчиваться скобками. battleLabelsTemplates.xc: "format": "<b>{{py:repairingTime()}}</b>" Branch: default, Revision: 6577 XVM-6.4.6.3-dev: ... * py_macro: скобки для функций без аргументов могут быть опущены Установите последнюю ночную сборку, или попробуйте скобки приписать, как я показал выше. Edited October 13, 2016 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
BuSH 174 #358933 Posted October 13, 2016 p.s. буду благодарен за реплеи с выведенными из строя башней, орудием, двигателем, приборами наблюдения (вроде всё ломающееся перечислил).Может сходу нужно в новую тему уезжать раз такой замах? Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #358934 Posted October 13, 2016 за реплеи с выведенными из строя башней крит башни + последующий крит гусли 20161012_2109_ussr-R109_T54S_28_desert.wotreplay 1 Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #358945 Posted October 13, 2016 Таймер ремонта. Подогнано пока что только для гусениц. И таймер не полноценный, но для начала сойдёт, я думаю. Можешь уже отдельную тему создавать. :) Чувствую, скоро нужен будет раздел для py_macro. 3 Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #358968 Posted October 13, 2016 крит башни + последующий крит гусли Спасибо, башня с гусеницей готовы. Нарою всё остальное - выложу новую версию. 2 Quote Share this post Link to post Short link Share on other sites
panteror 54 #358971 Posted October 13, 2016 Спасибо, башня с гусеницей готовы. Нарою всё остальное - выложу новую версию. Nice work The timer is full second (10, 9, 8... ), possibility to have hundredth in future release ? Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #358972 Posted October 13, 2016 (edited) The timer is full second (10, 9, 8... ), possibility to have hundredth in future release ? Of course. There will be individual timer. @sirmax, т.к. здесь будет 5 текстовых полей для каждого модуля, лучше на каждое вводить отдельное событие или пользоваться одним, но для всех? Я не знаю, что будет лучше по производительности: обновление нескольких полей при одном событии или несколько событий, но по одному обновлённому полю. Edited October 13, 2016 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #358977 Posted October 13, 2016 Думаю лучше: лучше на каждое вводить отдельное событие Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #358979 Posted October 13, 2016 Спасибо, башня с гусеницей готовы. Нарою всё остальное - выложу новую версию. движок, орудие 20161013_2031_germany-G97_Waffentrager_IV_02_malinovka.wotreplay приборы наблюдения, орудие replay_last_battle.wotreplay 1 Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #358987 Posted October 13, 2016 @Kapany3uk, большое спасибо. Обновил для всех модулей. В следующем обновлении будет полноценный таймер и, скорее всего, отдельные события. 1 Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #358990 Posted October 13, 2016 (edited) @sirmax, т.к. здесь будет 5 текстовых полей для каждого модуля, лучше на каждое вводить отдельное событие или пользоваться одним, но для всех? Я не знаю, что будет лучше по производительности: обновление нескольких полей при одном событии или несколько событий, но по одному обновлённому полю. Если события одинаковые, то лучше одно на всех. Если у каждого поля свое хитрое поведение, например, значение поля меняется раз в секунду, то лучше для него сделать отдельное событие, чтобы в холостую не гонять. С другой стороны, надо смотреть на управляемость этого всего. Если реализация сделана в разных .py файлах, то лучше разделить события, чтобы у народа не было вопросов как их включить. По производительности одно или несколько событий будет не сильно отличаться. Edited October 13, 2016 by sirmax 1 Quote Share this post Link to post Short link Share on other sites
Последний из могикан... 7 #358999 Posted October 13, 2016 хорошая весчь ++ Quote Share this post Link to post Short link Share on other sites
Сербия 12 #359000 Posted October 13, 2016 @Kotyarko_O, спасибо за работу. Не по теме: может кто это сделать в XVM WotXp http://www.koreanrandom.com/forum/topic/24591-09-wotxp-расширенное-отображение-опыта-экипажа-и-тех/ Quote Share this post Link to post Short link Share on other sites
hat3k 80 #359002 Posted October 13, 2016 Большое спасибо за таймер. Вопрос, а нужны ли "с."? Quote Share this post Link to post Short link Share on other sites
daftGear 33 #359003 Posted October 13, 2016 (edited) "$ref": { "path":"defaultItem" }, забыл дописать вроде "$ref": { "path":"def.defaultItem" }, Edited October 13, 2016 by NagibMan Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #359014 Posted October 13, 2016 (edited) Если события одинаковые, то лучше одно на всех. Если у каждого поля свое хитрое поведение, например, значение поля меняется раз в секунду, то лучше для него сделать отдельное событие, чтобы в холостую не гонять. С другой стороны, надо смотреть на управляемость этого всего. Если реализация сделана в разных .py файлах, то лучше разделить события, чтобы у народа не было вопросов как их включить. По производительности одно или несколько событий будет не сильно отличаться. Понял, спасибо. Когда начал делать самостоятельные таймеры, вопрос отпал, потому что там без отдельных событий никак. Вопрос, а нужны ли "с."? Наверное, нет. И без них всё понятно смотрится (при отдельном таймере). UPD. Обновлено. Введены отдельные таймеры для каждого модуля. The timer is full second (10, 9, 8... ), possibility to have hundredth in future release ? Done. Edited October 13, 2016 by Kotyarko_O 1 Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #359045 Posted October 13, 2016 Обновлено. Введены отдельные таймеры для каждого модуля. из того что бросилось в глаза: 1. не проставляется ноль после точки при целых секундах, отчего изображение скачет 2. на реплее при повторном крите того же модуля таймер не отображается 3 Quote Share this post Link to post Short link Share on other sites