Jump to content
Korean Random
vlad_cs_sr

Предложения по стандартному конфигу / Suggestions for default config

Recommended Posts

Можно короче:

Спасибо большое! все отлично!

 

Осталась пара вопросов:

Как впихнуть закрывающую скобку в ру-макрос?

мне надо сделать так: (Ср. урон: 1111) - в скобках и чтобы эти скобки в реплее (раз уж не отдается) пропадали вместе с цифрами.

я пытался впихнуть через footer, но при такой записи {{py:xvm_avgDamage('(Ср. урон: ', '{{hitlog.dmg-total}}', ')')}} начинает ругаться на некорректный литерал ... ')' ) 

пытался так '\)' ) - то же самое, попробовал и так '")"' ) (кавычки в кавычках) - не проходит, вообще на дефолт сбрасывает...

Как туда же засунуть картинку?

Вот в этой конструкции {{py:xvm_mainGun('Основной калибр ', '{{hitlog.dmg-total}}')}}  мне надо вместо текста вставить картинку из клиента <img src='img://gui/maps/icons/achievement/32x32/mainGun.png' vspace='-12'>, чтобы она пряталась вместе с цифрами, но простой заменой не работает, поэтому сейчас я картинку просто вписал в "формат" перед ру-макросом, но тогда она не прячется :((

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites
Как впихнуть закрывающую скобку в ру-макрос?

можно так попробовать:

@xvm.export('xvm_mainGun', deterministic=False)
def mainGun(header, dmg_total, end_header = ''):
    .
    .
    .
    .
    return '%s%s%s' % (header, high_caliber, end_header) if threshold <= int(max_hp_enemy) else '' 
Как туда же засунуть картинку?

, покажи как прописываешь в battleLabelsTemplates.xc 

И повторю вопрос, а то может затерялся он:

 

 

А есть реплей с тимдамагом?

Все нашел.

Edited by ktulho

Share this post


Link to post

Short link
Share on other sites
Все нашел.

а я блин раскопал акк, зашел в бой, популял по своим, получил "100 якорей в горбатую спину" и был в итоге замочен союзниками... И все ради того, чтобы прочитать "все нашел"  :heh:  

20160816_1948_ussr-R10_AT-1_08_ruinberg.wotreplay

Edited by Kapany3uk
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

 

 

а я блин раскопал акк, зашел в бой, популял по своим, получил "100 якорей в горбатую спину" и был в итоге замочен союзниками... И все ради того, чтобы прочитать "все нашел" 
, а я на wotreplays просмотрел 227 результатов реплеев и нашел.))

Share this post


Link to post

Short link
Share on other sites

зато у меня не надо ждать - прямо после отсчета с вертухана залепил :))


 

 

, покажи как прописываешь в battleLabelsTemplates.xc 
сейчас так (картинка и скобки не убираются)
      "format": "<img src='img://gui/maps/icons/achievement/32x32/mainGun.png' vspace='-12'>{{py:xvm_mainGun(' ', '{{hitlog.dmg-total}}')}}  ({{py:xvm_avgDamage('Ср. урон: ', '{{hitlog.dmg-total}}')}})"

хочу так:

      "format": "{{py:xvm_mainGun('<img src='img://gui/maps/icons/achievement/32x32/mainGun.png' vspace='-12'> ', '{{hitlog.dmg-total}}')}}  {{py:xvm_avgDamage('(Ср. урон: ', '{{hitlog.dmg-total}}', ')')}}"

и закрывающая ')' все ломает...

Share this post


Link to post

Short link
Share on other sites

@Kapany3uk, в avdDamage:

@xvm.export('xvm_avgDamage', deterministic=False)
def avgDamage(header, dmg_total, end_header = ''):
    global avgDmg
    if avgDmg == None:
        return
    else:
        avgDamage = int(avgDmg) - int(dmg_total)
        if avgDamage <= 0:
            avgDamage = '+%s' % (abs(avgDamage))
    return '%s%s%s' % (header, avgDamage, end_header)  
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
убирать вообще (и тут становится сильно актуален мой предыдущий вопрос про картинку в 'header')

 

Как раз поэтому то и шапка (заголовок) внесен непосредственно внутрь питон кода, для чего, а все просто.

Если у нас по текущей логике нельзя получить основной калибр, либо в реплее недоступен подсчет среднего урона панель будет полностью пуста.

 

и все "форматирование" вывода вынести за пределы ру-макроса в любимый и привычный "format"?

 

Если же мы пропишем заголовок отдельно в поле то при отсутствие данных у нас будет выводится пустая шапка без данных что не особо то будет смотреться.

Edited by night_dragon_on

Share this post


Link to post

Short link
Share on other sites

 

 

хочу так:
попробуй так:
 "format": "{{py:xvm_mainGun('<img src=\'img://gui/maps/icons/achievement/32x32/mainGun.png\' vspace=\'-12\'> ', '{{hitlog.dmg-total}}')}}  {{py:xvm_avgDamage('(Ср. урон: ', '{{hitlog.dmg-total}}', ')')}}" 

Share this post


Link to post

Short link
Share on other sites

вы тут забыли сделать еще проверку на режим боя, вроде

player = BigWorld.player()
if player.arena.guiType == 1:
   тут уже все и счичать 
else:
   return "<img src='img://gui/maps/icons/library/errorIcon.png' width='22' height='22' vspace='-4'>"

Share this post


Link to post

Short link
Share on other sites

вы тут забыли сделать еще проверку на режим боя, вроде

 

Везде же есть проверка:

 

'code'

    battletype = BigWorld.player().arena.guiType
    if battletype != 1:
        return

 

Отображаются данные только для рандомного боя ( медальку можно получить только в этом режиме, да и данные по среднему урону берутся только из рандомной статистики "getRandomStats()" ).

Edited by night_dragon_on
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

 

Kapany3uk, в avdDamage:
 я же так пробовал (end_header --> footer) - не работает...

и с картинкой никак :))

 

 

попробуй так:

'лог'

2016-08-16 20:31:31: [ERROR] Traceback (most recent call last):
  File "xvm_main/python_macro.py", line 154, in process_python_macro
  File "xvm_main/python_macro.py", line 141, in get_function
ValueError: Function syntax error: xvm_mainGun('
arg='xvm_mainGun(''
2016-08-16 20:31:31: [ERROR] Traceback (most recent call last):
  File "xvm_main/python_macro.py", line 154, in process_python_macro
  File "xvm_main/python_macro.py", line 142, in get_function
  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', ')
                                ^
SyntaxError: EOL while scanning string literal
arg='xvm_avgDamage('(Ср. урон: ', '0', ')')'

Share this post


Link to post

Short link
Share on other sites

 

 

и с картинкой никак :))
, проверь пока без картинки, только скобку.

Share this post


Link to post

Short link
Share on other sites

, проверь пока без картинки, только скобку.

к сожалению, ожидаемый лог (реплей)

2016-08-16 21:14:06: [ERROR] Traceback (most recent call last):
  File "xvm_main/python_macro.py", line 154, in process_python_macro
  File "xvm_main/python_macro.py", line 142, in get_function
  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', ')
                                 ^
SyntaxError: EOL while scanning string literal
arg='xvm_avgDamage( '(Ср. урон: ', '0', ')')'

если вместо ')' вписать пробел ' ' или любую букву, то лог чистый. Предположу, что вся загвоздка в экранировании этой закрывающей скобки... Попробовал вставить \u0029 - так же ошибка...

 

upd   ')'  в лог ошибку не выдал, пойду в бой проверить

 

УРА-А!! заработало... выскочил из боя написать :))

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

 

 

сли вместо ')' вписать пробел ' ' или любую букву, то лог чистый. Предположу, что вся загвоздка в экранировании этой закрывающей скобки... Попробовал вставить \u0029 - так же ошибка...  
, да, я уже  тоже всяко разно пытаюсь. Похоже парсер XVM пытается это прочитать, и у него не получается.

 

 

УРА-А!! заработало... выскочил из боя написать :))
:gawi: 

здесь наверно предется несколько символов менять:

<img src='img://gui/maps/icons/achievement/32x32/mainGun.png' vspace='-12'> 

 

 

УРА-А!! заработало... выскочил из боя написать :))
, а на реплее не работает? 

Share this post


Link to post

Short link
Share on other sites
, а на реплее не работает? 

я скобку проверял (только запись Hex-ом рабочая получается), сейчас буду картинку вымучивать :)) 

 

что получается:

если записать код картинки с апострофом

{{py:xvm_mainGun('<img src='img://gui/maps/icons/achievement/32x32/mainGun.png' vspace='-10'> ', '{{hitlog.dmg-total}}')}}

то ошибку выдает питон,

а если записать с двойными кавычками

{{py:xvm_mainGun('<img src="img://gui/maps/icons/achievement/32x32/mainGun.png" vspace="-10"> ', '{{hitlog.dmg-total}}')}}

ошибку выдает парсер json и грузит дефолтный конфиг, при этом питоновской ошибки нет (то ли не доходит до нее, то ли ее уже нет в такой записи) 

Экранирование \" или \' не помогает - ошибка в питоне

Замкнутый круг какой-то. Может дело в чтении ру-макросов в хвм, @sirmax, поможешь?

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites
Замкнутый круг какой-то.

 

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

Edited by night_dragon_on

Share this post


Link to post

Short link
Share on other sites

Накатал вариант тестовый в котором заголовок не помещен в код питона, но при этом сохраняется отсутствие вывода поля при недоступности данных (в реплее, при невозможности получить основной калибр, в режиме боя отличном от рандома). Пробуем:

 

avgDamage_mainGun_test.zip

 

 

При отсутствие данных размер для шрифта будет равен нулю и само поле не будет висеть на экране.

"mainGun": {
  "enabled": true,
  "updateEvent": "ON_DAMAGE_CAUSED",
  "x": 150,
  "y": 30,
  "width": 200,
  "height": 40,
  "screenHAlign": "center",
  "shadow": { "distance": 1, "angle": 90, "alpha": 80, "blur": 5, "strength": 1.5 },
  "textFormat": { "size": 15, "align": "center" },
  "format": "<font size='{{py:xvm.total_hp.mainGunTxt('{{hitlog.dmg-total}}')}}'>Основной калибр: {{py:xvm.total_hp.mainGun('{{hitlog.dmg-total}}')}}</font>"
},
"avgDamage": {
  "enabled": true,
  "updateEvent": "ON_DAMAGE_CAUSED",
  "x": -150,
  "y": 30,
  "width": 200,
  "height": 40,
  "screenHAlign": "center",
   "shadow": { "distance": 1, "angle": 90, "alpha": 80, "blur": 5, "strength": 1.5 },
  "textFormat": { "size": 15, "align": "center" },
  "format": "<font size='{{py:xvm.total_hp.avgDamageTxt('{{hitlog.dmg-total}}')}}'>Средний урон: {{py:xvm.total_hp.avgDamage('{{hitlog.dmg-total}}')}}</font>"
},

Надо добавить ON_DAMAGE_CAUSED_ALLY в mainGun. 

Edited by ktulho

Share this post


Link to post

Short link
Share on other sites

//_<

Исправил. Не бейте меня сильно.))

Надо добавить ON_DAMAGE_CAUSED_ALLY в mainGun. 

И ещё, может удобнее (в плане читаемости) "alpha" менять,  а не размер?

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

И ещё, может удобнее (в плане читаемости) "alpha" менять,  а не размер?

 

Да тоже кажется так лучше смотреться будет.

 

Edited by night_dragon_on
  • 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.
Note: Your post will require moderator approval before it will be visible.

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.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...