Jump to content
Korean Random
Sign in to follow this  
ddar

Не могу найти тему про собственные макросы

Recommended Posts

Помню, что читал здесь на форуме про макросы вида {{ * }}, которые можно делать самостоятельно. Джва дня ищу, не могу найти тему. Подскажите?

Share this post


Link to post

Short link
Share on other sites

@ddar есть макросы {{.}}

  Специальные макросы
┌───┬──────────┬───┬───┬───┬───┬───┬───┬───┬───────────────────────────────────────────────────────
SDH macro     BL PP SF MM VM HI HL Description
├───┼──────────┼───┼───┼───┼───┼───┼───┼───┼───────────────────────────────────────────────────────
 S  {{.}}     X  X  X  X  X  X  X  для подстановки значения из конфига: {{.путь.к.значению.в.конфиге}} (например: {{.language}}, {{.def.mycolors.ally}})
└───┴──────────┴───┴───┴───┴───┴───┴───┴───┴───────────────────────────────────────────────────────

 

Share this post


Link to post

Short link
Share on other sites

@ktulho да, наверное это он. Все не то.

А можно значение макроса присвоить переменной, чтобы потом её использовать в другом месте? Чтобы например результат макроса из прицела использовать в маркерах

Share this post


Link to post

Short link
Share on other sites
5 минут назад, ddar сказал:

Чтобы например результат макроса из прицела использовать в маркерах

А они точно там не работают? По идее должны, правда значения будут обновляться только при изменении hp, при засвете техники в кругу отрисовки, или если засвеченная техника заехала в круг отрисовки.

Share this post


Link to post

Short link
Share on other sites

@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 by ddar

Share this post


Link to post

Short link
Share on other sites
 
7 минут назад, ddar сказал:

уже с кучей таких ошибок

 Я же показывал как убрать ошибки:

"format": "{{py:sight.damageShell?{{py:mul({{py:sight.damageShell}}, 0.75)}}}}"

 

Share this post


Link to post

Short link
Share on other sites
17 минут назад, ktulho сказал:

 Я же показывал как убрать ошибки:

Неа, не помогает. Я так понимаю, макрос отдает значение, поэтому умножение выполняется (или пытается выполниться), но в логе все равно ошибки. А главное, результат умножения есть и все работает как надо.

Вот прямо сейчас запустил реплей с такой строкой

xvm.log

markers.xc

Edited by ddar

Share this post


Link to post

Short link
Share on other sites

@ddar может у вас ещё где-нибудь прописано такая строка? Попробуйте поменять 0.75 на 0.76.

Share this post


Link to post

Short link
Share on other sites

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

 

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

@ktulho да. Я подлиннее и не проверял, сразу короткий взял.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Какие интересные идеи проверяются. Спасибо.

Share this post


Link to post

Short link
Share on other sites

Не могу разобраться с синтаксисом. Помогите.

В @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}}?

И второй вопрос - а откуда там вообще тень по-умолчанию?

hadow.png

playersPanel.xc

playersPanelTemplates.xc

Edited by ddar

Share this post


Link to post

Short link
Share on other sites
3 часа назад, ddar сказал:

Почему же тогда тень не подключается красивым {{.mainShadow}}?

Могу только выдвинуть предположение. {{.}} - это макрос, макрос не может возвращать целую секцию, он может возвращать только значение. А еще не стоит использовать макросы там, где можно обойтись без них, они могут нагружать систему. Поэтому в данном случае с любой стороны правильнее использовать использовать ссылки.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×