eug.ramires Posted October 6, 2023 Share Posted October 6, 2023 Подскажите! Решил посчитать отношение процента побед на конкретной технике к проценту побед на аккаунте прописал в конфиге такой формулой: <font face='$TitleFont' size='17' color='{{v.c_winrate}}'>{{{{py:div({{v.winrate}}, {{mystat.winrate}})}}%0.2f~}} Выражение работает значение отражается в ангаре, но при этом в логе XVM появляется ошибка 2023-10-06 16:15:10: [ERROR] Traceback (most recent call last): File "res_mods/mods/xfw_packages\xvm_pymacro\python\__init__.py", line 157, in process return (func(), deterministic) File "res_mods/mods/xfw_packages\xvm_pymacro\python\__init__.py", line 123, in <lambda> return (lambda: func(*args), deterministic) TypeError: math_div() takes exactly 2 arguments (1 given) arg='div(43.362831858407, )' Что не так? Что значит эта ошибка в логе? Прилагаю лог xvm.log Link to comment Short link Share on other sites More sharing options...
ktulho Posted October 6, 2023 Share Posted October 6, 2023 4 часа назад, eug.ramires сказал: Что не так? Что значит эта ошибка в логе? 4 часа назад, eug.ramires сказал: TypeError: math_div() takes exactly 2 arguments (1 given) arg='div(43.362831858407, )' Ошибка означает, что макросу {{py:div(a, b)}}, передан один аргумент, а не два. В данном случае макрос {{mystat.winrate}} вернул пусто. Чтобы избежать данной ошибки, необходимо добавить проверку. <font face='$TitleFont' size='17' color='{{v.c_winrate}}'>{{mystat.winrate?{{py:div({{v.winrate}}, {{mystat.winrate}})%0.2f~}}}} Link to comment Short link Share on other sites More sharing options...
eug.ramires Posted October 6, 2023 Author Share Posted October 6, 2023 49 минут назад, ktulho сказал: Ошибка означает, что макросу {{py:div(a, b)}}, передан один аргумент, а не два. В данном случае макрос {{mystat.winrate}} вернул пусто. Чтобы избежать данной ошибки, необходимо добавить проверку. <font face='$TitleFont' size='17' color='{{v.c_winrate}}'>{{mystat.winrate?{{py:div({{v.winrate}}, {{mystat.winrate}})%0.2f~}}}} Попробывал с этим выражением все равно в логе ошибка 2023-10-06 21:21:35: [ERROR] Traceback (most recent call last): File "res_mods/mods/xfw_packages\xvm_pymacro\python\__init__.py", line 157, in process return (func(), deterministic) File "res_mods/mods/xfw_packages\xvm_pymacro\python\__init__.py", line 123, in <lambda> return (lambda: func(*args), deterministic) TypeError: math_div() takes exactly 2 arguments (1 given) arg='div(45.23809523809524, )' xvm.log Link to comment Short link Share on other sites More sharing options...
ktulho Posted October 6, 2023 Share Posted October 6, 2023 (edited) @eug.ramires Прикрепите конфиг Edited October 6, 2023 by ktulho Link to comment Short link Share on other sites More sharing options...
Jack_ppc Posted October 6, 2023 Share Posted October 6, 2023 @ktulho где-то уже было такое - эти арифметические макросы все равно выдают ошибку, что нет одного аргумента. Парсер как-будто пропускает эту проверку {{mystat.winrate?{{py:div({{v.winrate}}, {{mystat.winrate}})%0.2f~}}}} Link to comment Short link Share on other sites More sharing options...
eug.ramires Posted October 6, 2023 Author Share Posted October 6, 2023 1 час назад, ktulho сказал: @eug.ramires Прикрепите конфиг statVehicle.xc Link to comment Short link Share on other sites More sharing options...
HEKPOMAHT Posted October 6, 2023 Share Posted October 6, 2023 Если макрос может возвращать пусто, значит нужно дописывать дефолтную подстановку 0 Link to comment Short link Share on other sites More sharing options...
ktulho Posted October 7, 2023 Share Posted October 7, 2023 12 часов назад, Jack_ppc сказал: @ktulho где-то уже было такое - эти арифметические макросы все равно выдают ошибку, что нет одного аргумента. Парсер как-будто пропускает эту проверку {{mystat.winrate?{{py:div({{v.winrate}}, {{mystat.winrate}})%0.2f~}}}} Точно, я же и писал. https://kr.cm/f/t/67803/c/526664/ @eug.ramires Тогда можно попробовать так: <font face='$TitleFont' size='17' color='{{v.c_winrate}}'>{{py:div({{mystat.winrate?{{v.winrate?{{v.winrate}}|0}}|0}}, {{mystat.winrate?{{mystat.winrate}}|1}})%0.2f~}}</font> Если какой-то из макросов {{v.winrate}}, {{mystat.winrate}} возвращает пусто, то вся конструкция возвратит 0. Link to comment Short link Share on other sites More sharing options...
steaxch Posted October 7, 2023 Share Posted October 7, 2023 4 часа назад, ktulho сказал: Точно, я же и писал. https://kr.cm/f/t/67803/c/526664/ @ktulho я тогда забил на это потом в танках перерыв делал, сейчас башка не соображает, как в мою конструкцию эти 0 и 1 добавить, помоги // Уровень полевой модернизации {"enabled": true, "x": 133, "y": 19, "layer": "normal", "width": 24, "height": 24, "src": "{{v.levelPostProgress?xvm://res/TPblHbl4/modernization/number_{{v.level=6?{{v.levelPostProgress=5?max|{{v.levelPostProgress}}}}|{{v.level={{py:sum({{v.levelPostProgress}},2)}}?max|{{v.levelPostProgress}}}}}}}}.png" }, Link to comment Short link Share on other sites More sharing options...
ktulho Posted October 7, 2023 Share Posted October 7, 2023 @steaxch наверное так: // Уровень полевой модернизации {"enabled": true, "x": 133, "y": 19, "layer": "normal", "width": 24, "height": 24, "src": "{{v.levelPostProgress?xvm://res/TPblHbl4/modernization/number_{{v.level=6?{{v.levelPostProgress=5?max|{{v.levelPostProgress}}}}|{{v.level={{py:sum({{v.levelPostProgress?v.levelPostProgress|20}},2)}}?max|{{v.levelPostProgress}}}}}}}}.png" }, 1 @ Link to comment Short link Share on other sites More sharing options...
eug.ramires Posted October 7, 2023 Author Share Posted October 7, 2023 10 часов назад, ktulho сказал: Точно, я же и писал. https://kr.cm/f/t/67803/c/526664/ @eug.ramires Тогда можно попробовать так: <font face='$TitleFont' size='17' color='{{v.c_winrate}}'>{{py:div({{mystat.winrate?{{v.winrate?{{v.winrate}}|0}}|0}}, {{mystat.winrate?{{mystat.winrate}}|1}})%0.2f~}}</font> Если какой-то из макросов {{v.winrate}}, {{mystat.winrate}} возвращает пусто, то вся конструкция возвратит 0. Сыграл пару боев лог чистый ошибка исчезла. Спасибо! Link to comment Short link Share on other sites More sharing options...
Recommended Posts