ktulho 5,790 #397055 Posted July 9, 2017 я понял. , так удалите из папки py_macro файл total_hp.py Quote Share this post Link to post Short link Share on other sites
Kornet_WA 138 #397056 Posted July 9, 2017 , так удалите из папки py_macro файл total_hp.py удалил походу кочует с времен когда он там был по дефолту. ошибка в логе пропала, но ситуацию это не исправило. xvm.log Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #397057 Posted July 9, 2017 @Kornet_WA, должно работать, покажите всё поле. Quote Share this post Link to post Short link Share on other sites
Kornet_WA 138 #397058 Posted July 9, 2017 (edited) "totalHP_bg": { // фоновая подложка "enabled": true, "x": -2, "y": -1, "width": 895, "height": 49, "screenHAlign": "center", "format": "<img src='xvm://res/icons/totalHP/fallout.png'>" }, "totalHP_Bg_ally": { // стрелка перевеса по хп союзники "$ref": { "path":"def.totalHP_bg" }, "x": -80, "y": 40, "width": 238, "height": 31, //"bgColor": "0xFFFFFF", //"alpha": "{{py:math.sub({{py:xvm.total_hp.ally}}, {{py:xvm.total_hp.enemy}})>0?0|100}}", "format": "{{py:math.sub({{py:xvm.total_hp.ally}}, {{py:xvm.total_hp.enemy}})>0?<img src='xvm://res/icons/totalHP/ally_sing.png'>|<img src='xvm://res/icons/totalHP/enemy_sing.png'>}}" }, Edited July 9, 2017 by Kornet_WA Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #397059 Posted July 9, 2017 Нет события для обновления поля: "totalHP_Bg_ally": { // стрелка перевеса по хп союзники "$ref": { "path":"def.totalHP_bg" }, "updateEvent": "PY(ON_UPDATE_HP)", "x": -80, "y": 40, "width": 238, "height": 31, "format": "{{py:math.sub({{py:xvm.total_hp.ally}}, {{py:xvm.total_hp.enemy}})>0?<img src='xvm://res/icons/totalHP/ally_sing.png'>|<img src='xvm://res/icons/totalHP/enemy_sing.png'>}}" }, Можно чуть короче записать: "format": "{{{{py:xvm.total_hp.ally}}>{{py:xvm.total_hp.enemy}}?<img src='xvm://res/icons/totalHP/ally_sing.png'>|<img src='xvm://res/icons/totalHP/enemy_sing.png'>}}" Quote Share this post Link to post Short link Share on other sites
Kornet_WA 138 #397064 Posted July 9, 2017 Нет события для обновления поля: Моя внимательность как всегда. поле скопировал а событие и забыл вставить. Всё норм извини за беспокойство. Может тему отдельную по totalHP сделаешь. А то фича есть и очень масштабная а темы нет. Тем более вопросы есть по моим старым хотелкам. Да и ещё, от нечего делать, конфиги найденные в инете портирую в XVM. могу в тему и скинуть. Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #397065 Posted July 9, 2017 Может тему отдельную по totalHP сделаешь. А то фича есть и очень масштабная а темы нет. Тем более вопросы есть по моим старым хотелкам. Да и ещё, от нечего делать, конфиги найденные в инете портирую в XVM. могу в тему и скинуть. , так можешь сам создать. Quote Share this post Link to post Short link Share on other sites
Kornet_WA 138 #397066 Posted July 9, 2017 (edited) , так можешь сам создать. Я не могу создавать темы в разделе. Edited July 13, 2017 by Kornet_WA Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #397067 Posted July 9, 2017 Я нему создавать темы в разделе. , я тоже) P.S. Я создаю их в разделе Разработка, потом их переносят. Quote Share this post Link to post Short link Share on other sites
HEKPOMAHT 2,168 #397406 Posted July 12, 2017 а вот интересно. можно ли сделать макрос как-нибудь для ушей "чат у игрока забанен" ? вот и макросы появились :) Добавил макросы: {{muted}} - у игрока заблокирован чат на время текущего боя {{chatban}} - у игрока заблокирован чат глобально модераторами WG Quote Share this post Link to post Short link Share on other sites
Андрей Олегович 0 #397419 Posted July 12, 2017 Ребята всем привет!!Подскажите а то не пойму в чем речь!!! XWM активирован при входе в игру тоже это пишет что мол действует еще 10 дней (активен),но в игре прочерки стоят че по %?что по КПД!!Стоят протанки!но я не первый год пользуюсь и все было норм а здесь че то ну ни как не отображает!не пойму!!! подскажите в чем дело!!! Quote Share this post Link to post Short link Share on other sites
adri1 11 #397499 Posted July 13, 2017 Tank Reload TimerI remove the enemy's timer, but it still may violate XVM's purpose.Attachment unzip to the py_macro/xvm py_macro/xvm.py from xvm import reload @xvm.export('xvm.leftList',deterministic=False) def leftList(): return reload.getLeftList() battleLabelsTemplates.xc { "leftreload": { "enabled": false, "updateEvent": "PY(ON_RELOAD_REFRESH)", "x": "{{pp.mode=0?5|{{py:math.sum({{pp.widthLeft}},50)}}}}", "y": 67, "alpha": 100, "width": 300, "height": 2000, "scaleY": 1.025, "shadow": { "alpha": 100,"color": "0x000000","angle": 45,"distance": 1,"blur": 4,"strength": 3}, "textFormat": { "color": "0xFFFFFF", "size": 12, "align": "left", "marginLeft": 2, "marginRight": 2}, "format": "<textformat leading='10'>{{py:xvm.leftList()}}</textformat>" } } battlelabel.xc ${ "battleLabelsTemplates.xc":"def.leftreload" }, My client is not available. So no preview yet. Quote Share this post Link to post Short link Share on other sites
Slava7572 1,685 #397529 Posted July 13, 2017 Ребята всем привет!!Подскажите а то не пойму в чем речь!!! XWM активирован при входе в игру тоже это пишет что мол действует еще 10 дней (активен),но в игре прочерки стоят че по %?что по КПД!!Стоят протанки!но я не первый год пользуюсь и все было норм а здесь че то ну ни как не отображает!не пойму!!! подскажите в чем дело!!! Именно в ангаре написано,что ХВМ активирован?Можно поподробней,желательно со скринами.Там у них был сломан конфиг,но в последней версии(#15) все исправили.Можете попробовать удалить кеш и запустить по новой установщик,обычно это помогает. Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #398593 Posted July 21, 2017 (edited) Требуется помощь: как сделать округление до ближайшего большего числа, кратного 0,5 (к примеру 45,5/46,0/46,5/47,0 и т.д.)? Хочу вывести в карусель строчку типа "Побед 53,27% (23 до 53,5%)" по подобию из вкладки "Достижения/Техника" зы. пока никак не могу добиться даже простого округления, ошибка TypeError: 'NoneType' object is not iterable 'код' .ру def isfloat(value): try: float(value) return True except ValueError: return False @xvm.export('my_round', deterministic=False) def math_round(a): if not isfloat(a): return '' a = float(a) / 100 return round(a, 2) .хс "format": "{{py:my_round({{v.winrate}})}}" ЧЯДНТ? зы.зы. попытался впихнуть math.ceil() - не зашло (та же ошибка)... Edited July 22, 2017 by Kapany3uk Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #398595 Posted July 22, 2017 (edited) TypeError: 'NoneType' object is not iterable , это ошибка говорит о том, что что-то равно None. Поэтому надо добавить проверку: @xvm.export('my_round', deterministic=False) def math_round(a): if (a is None) or (not isfloat(a)): return '' a = float(a) / 100 return round(a, 2) И что-то не могу понять, зачем эта строчка? a = float(a) / 100 Edited July 22, 2017 by ktulho Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #398605 Posted July 22, 2017 И что-то не могу понять, зачем эта строчка? удобнее для формулы, чтобы цифра была в формате десятичной дроби, а не процентов (т.е. 0.5432, а не 54.32) Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #398606 Posted July 22, 2017 deterministic=False тут не нужен, эта функция детерминированная (на самом деле даже чистая). Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #398616 Posted July 22, 2017 (edited) удобнее для формулы, чтобы цифра была в формате десятичной дроби, а не процентов (т.е. 0.5432, а не 54.32) В общем случае лучше работать с int, чем с float. Если a не может быть типом str, то я бы написал так: @xvm.export('my_round') def math_round(a): if not (isinstance(a, float) or isinstance(a, int)): return '' a = round(a) return a / 100.0 Требуется помощь: как сделать округление до ближайшего большего числа, кратного 0,5 (к примеру 45,5/46,0/46,5/47,0 и т.д.)? Хочу вывести в карусель строчку типа "Побед 53,27% (23 до 53,5%)" по подобию из вкладки "Достижения/Техника" def f(a): if not (isinstance(a, float) or isinstance(a, int)): return '' remainder = int(a * 10) % 5 if remainder == 0: return 'Побед {}% (0.5 до {}%)'.format(round(a, 2), round(a + 0.5, 2)) b = (a * 10 + (5 - remainder)) / 10.0 return 'Побед {}% ({} до {}%)'.format(round(a, 2), round(b - a, 2), round(b, 2)) Пишу с телефона, так что могут ошибки опечатки и просто не рабочий код.) P.S. Немного поправил код. Edited July 22, 2017 by ktulho 1 Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #398618 Posted July 22, 2017 @ktulho, я формулу вывел уже, получилось так: 'код' def isfloat(value): try: float(value) return True except ValueError: return False @xvm.export('my_percent_wins') def percent_wins(w,b,r): # w = {{v.wins}} / b = {{v.battles}} / r = {{v.winrate}} if (w is None or not isfloat(w)) or (b is None or not isfloat(b)) or (r is None or not isfloat(r)): return '' f = r - int(r) # дробная часть текущего процента побед if f < 0.5: # определяем желаемый процент побед с шагом 0,5% p = int(r) + 0.5 else: p = int(r) + 1 value = round( ( 100 * w - p * b ) / ( p - 100 ) ) return '{} до {}'.format(int(value),p) остался последний вопрос: как на место "до" впихнуть {{l10n:toWithSpaces}} ?? Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #398621 Posted July 22, 2017 Передай её в percent_wins() как строку и вставляй. Quote Share this post Link to post Short link Share on other sites