Jump to content
Korean Random

О работе макроса {{py:div(a, b)}}


Recommended Posts

Подскажите! Решил посчитать отношение процента побед на конкретной технике к проценту побед на аккаунте прописал в конфиге

такой формулой:

<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

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

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

@ktulho где-то уже было такое - эти арифметические макросы все равно выдают ошибку, что нет одного аргумента. Парсер как-будто пропускает эту проверку 

{{mystat.winrate?{{py:div({{v.winrate}}, {{mystat.winrate}})%0.2f~}}}}
Link to comment
Short link
Share on other sites

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

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

@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" },

 

  • Upvote 1
Link to comment
Short link
Share on other sites

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

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...