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

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

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