ddar 63 Posted May 4, 2019 Помню, что читал здесь на форуме про макросы вида {{ * }}, которые можно делать самостоятельно. Джва дня ищу, не могу найти тему. Подскажите? Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #457775 Posted May 4, 2019 @ddar есть макросы {{.}} Специальные макросы ┌───┬──────────┬───┬───┬───┬───┬───┬───┬───┬─────────────────────────────────────────────────────── │SDH│ macro │ BL│ PP│ SF│ MM│ VM│ HI│ HL│ Description ├───┼──────────┼───┼───┼───┼───┼───┼───┼───┼─────────────────────────────────────────────────────── │ S │ {{.}} │ X │ X │ X │ X │ X │ X │ X │ для подстановки значения из конфига: {{.путь.к.значению.в.конфиге}} (например: {{.language}}, {{.def.mycolors.ally}}) └───┴──────────┴───┴───┴───┴───┴───┴───┴───┴─────────────────────────────────────────────────────── Quote Share this post Link to post Short link Share on other sites
ddar 63 #457785 Posted May 4, 2019 @ktulho да, наверное это он. Все не то. А можно значение макроса присвоить переменной, чтобы потом её использовать в другом месте? Чтобы например результат макроса из прицела использовать в маркерах Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #457786 Posted May 4, 2019 5 минут назад, ddar сказал: Чтобы например результат макроса из прицела использовать в маркерах А они точно там не работают? По идее должны, правда значения будут обновляться только при изменении hp, при засвете техники в кругу отрисовки, или если засвеченная техника заехала в круг отрисовки. Quote Share this post Link to post Short link Share on other sites
ddar 63 #457789 Posted May 4, 2019 (edited) @ktulho они работают, но ошибки в логе я так и не смог убрать. Такая строка в маркерах работает без ошибок "format": "{{py:sight.damageShell}}" а вот такая "format": "{{py:mul({{py:sight.damageShell}}, 0.75)}}" уже с кучей таких ошибок SyntaxError: invalid syntax arg='mul(, 0.75)' 2019-05-04 16:24:20: [ERROR] Traceback (most recent call last): File "res_mods/mods/xfw_packages\xvm_main\python\python_macro.py", line 156, in process_python_macro (func, deterministic) = get_function(arg) File "res_mods/mods/xfw_packages\xvm_main\python\python_macro.py", line 144, in get_function args = ast.literal_eval(args_string) File "scripts/common/Lib/ast.py", line 49, in literal_eval File "scripts/common/Lib/ast.py", line 37, in parse File "<unknown>", line 1 (, 0.75) ^ Edited May 4, 2019 by ddar Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #457791 Posted May 4, 2019 7 минут назад, ddar сказал: уже с кучей таких ошибок Я же показывал как убрать ошибки: "format": "{{py:sight.damageShell?{{py:mul({{py:sight.damageShell}}, 0.75)}}}}" Quote Share this post Link to post Short link Share on other sites
ddar 63 #457792 Posted May 4, 2019 (edited) 17 минут назад, ktulho сказал: Я же показывал как убрать ошибки: Неа, не помогает. Я так понимаю, макрос отдает значение, поэтому умножение выполняется (или пытается выполниться), но в логе все равно ошибки. А главное, результат умножения есть и все работает как надо. Вот прямо сейчас запустил реплей с такой строкой xvm.log markers.xc Edited May 4, 2019 by ddar Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #457794 Posted May 4, 2019 @ddar может у вас ещё где-нибудь прописано такая строка? Попробуйте поменять 0.75 на 0.76. Quote Share this post Link to post Short link Share on other sites
ddar 63 #457795 Posted May 4, 2019 (edited) @ktulho больше нигде, я проверял xvm.log markers.xc Edited May 4, 2019 by ddar Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #457797 Posted May 4, 2019 @ddar тогда такой вариант: "alpha": "{{{{py:mul({{py:sight.damageShell?{{py:sight.damageShell}}|0}}, 0.75)}}>{{hp}}?100|0}}" Или может покороче получится: "alpha": "{{{{py:mul({{py:sight.damageShell|0}}, 0.75)}}>{{hp}}?100|0}}" 2 Quote Share this post Link to post Short link Share on other sites
ddar 63 #457798 Posted May 4, 2019 @ktulho и вновь большое спасибо Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #457803 Posted May 4, 2019 @ddar а покороче вариант работает? Quote Share this post Link to post Short link Share on other sites
ddar 63 #457804 Posted May 4, 2019 @ktulho да. Я подлиннее и не проверял, сразу короткий взял. 1 Quote Share this post Link to post Short link Share on other sites
aster 53 #457881 Posted May 4, 2019 Какие интересные идеи проверяются. Спасибо. Quote Share this post Link to post Short link Share on other sites
ddar 63 #458109 Posted May 6, 2019 (edited) Не могу разобраться с синтаксисом. Помогите. В @xvm.xc у меня есть блок "mainShadow": { "alpha": 50, "angle": 90, "blur": 1, "color": "0x000000", "distance": 1, "strength": 1.5 }, В playersPanelTemplates в блок level я добавляю тень: "shadow": {{.mainShadow}}, Но тень не добавляется, остается та, что по-умолчанию. Для проверки я вставляю эту же тень в format: "format": {{.mainShadow}} и вижу, что все хорошо, значение передается. С помощью такого блока тень нормально подключается: "shadow": ${ "@xvm.xc": "mainShadow" }, Почему же тогда тень не подключается красивым {{.mainShadow}}? И второй вопрос - а откуда там вообще тень по-умолчанию? playersPanel.xc playersPanelTemplates.xc Edited May 6, 2019 by ddar Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #458142 Posted May 6, 2019 3 часа назад, ddar сказал: Почему же тогда тень не подключается красивым {{.mainShadow}}? Могу только выдвинуть предположение. {{.}} - это макрос, макрос не может возвращать целую секцию, он может возвращать только значение. А еще не стоит использовать макросы там, где можно обойтись без них, они могут нагружать систему. Поэтому в данном случае с любой стороны правильнее использовать использовать ссылки. 1 Quote Share this post Link to post Short link Share on other sites
ddar 63 #458143 Posted May 6, 2019 @ktulho понял, спасибо Quote Share this post Link to post Short link Share on other sites