-
Posts
10 -
Joined
-
Last visited
Posts posted by Kupnu4
-
-
'тык'
Тут тоже один минус, в таком виде расчет для одной команды будет неверным так как переменная с максимальным начальным значением запаса прочности берется из большего значения толь или иной команды.
'hp_panel.py ; battleLabelsTemplates.xc ; shot-1.png'
{{py:xvm.frag_correlation.percent_hp(0)}} {{py:xvm.frag_correlation.percent_hp(1)}}
import BigWorld import xvm_battle.python.fragCorrelationPanel as panel actual_arenaUniqueID = None hp_max_team = 0 @xvm.export('xvm.frag_correlation.current_hp', deterministic=False) def current_hp(current_team): return panel.teams_totalhp[current_team] @xvm.export('xvm.frag_correlation.percent_hp', deterministic=False) def percent_hp(current_team): global actual_arenaUniqueID, hp_max_team arenaUniqueID = BigWorld.player().arenaUniqueID if actual_arenaUniqueID != arenaUniqueID and hp_max_team == 0: actual_arenaUniqueID = arenaUniqueID hp_max_team = max(panel.teams_totalhp) return round((100. * current_hp(current_team)) / hp_max_team, 0)
Во втором случае расчет для одной команды производится нормально, а для другой остается постоянной переменная с максимальным начальным значением запаса прочности.
'hp_panel.py ; battleLabelsTemplates.xc ; shot-2.png'
{{py:xvm.frag_correlation.percent_hp(0)}} {{py:xvm.frag_correlation.percent_hp(1)}}
import BigWorld import xvm_battle.python.fragCorrelationPanel as panel actual_arenaUniqueID = None hp_max_team = 0 @xvm.export('xvm.frag_correlation.percent_hp', deterministic=False) def percent_hp(current_team): global actual_arenaUniqueID, hp_max_team arenaUniqueID = BigWorld.player().arenaUniqueID if actual_arenaUniqueID != arenaUniqueID and hp_max_team == 0: actual_arenaUniqueID = arenaUniqueID hp_max_team = panel.teams_totalhp[current_team] return round((100. * current_hp(current_team)) / hp_max_team, 0)
Так что тут для правильного расчета нужно будет создавать две отдельных функции
import BigWorld hp_max_ally = 0 hp_max_enemy = 0 actual_arenaUniqueID = None @xvm.export('xvm.frag_correlation.percent_hp_ally', deterministic=False) def percent_hp_ally(): global actual_arenaUniqueID, hp_max_ally arenaUniqueID = BigWorld.player().arenaUniqueID if actual_arenaUniqueID != arenaUniqueID and hp_max_ally == 0: actual_arenaUniqueID = arenaUniqueID hp_max_ally = panel.teams_totalhp[0] return round((100. * current_hp(0)) / hp_max_ally, 0) @xvm.export('xvm.frag_correlation.percent_hp_enemy', deterministic=False) def percent_hp_enemy(): global actual_arenaUniqueID, hp_max_enemy arenaUniqueID = BigWorld.player().arenaUniqueID if actual_arenaUniqueID != arenaUniqueID and hp_max_enemy == 0: actual_arenaUniqueID = arenaUniqueID hp_max_enemy = panel.teams_totalhp[1] return round((100. * current_hp(1)) / hp_max_enemy, 0)
Или можно как то по другому выкрутится?
я вот пытался hp_max_team сделать на подобии panel.teams_totalhp[current_team], но чет как-то у меня ошибка лезет =_=, hp_max_team[current_team]
import BigWorld import xvm_battle.python.fragCorrelationPanel as panel actual_arenaUniqueID = None hp_max_team[0] = 0 hp_max_team[1] = 0 @xvm.export('xvm.frag_correlation.percent_hp', deterministic=False) def percent_hp(current_team): global actual_arenaUniqueID, hp_max_team[0], hp_max_team[1] arenaUniqueID = BigWorld.player().arenaUniqueID if actual_arenaUniqueID != arenaUniqueID: actual_arenaUniqueID = arenaUniqueID hp_max_team[0] = panel.teams_totalhp[0] hp_max_team[1] = panel.teams_totalhp[1] return round((100. * current_hp(current_team)) / hp_max_team[current_team], 0)
-
если быть точным то не тоталХП а целый раздел battleLabels, и по нажатию на таб не скрывает
-
if g_arenaUniqueID != arenaUniqueID: g_arenaUniqueID = arenaUniqueID: g_maxStartHP = max(panel.teams_totalhp)
во 2й строчке двоеточие лишнее?)
ЗЫ Спасибо за подсказочку, погляжу тоже в оборот пошел код?
-
а если карта 3 раза к ряду одна и таже? на разных танках с разным общим хп? не раз просто было уже
ЗЫ а есть ли инфа о начале боя? переменная или с того же таймера?
-
работает и ладно, насчет чистоты кода не парься, ты же для себя делаешь.
а полевые испытания показали что Max_HP_start приняло значение из 1го боя и всё, больше не хочет меняться. вот теперь как это решить?
сделать проверку на обнуление одного из хп, а вдруг захват базы
-
Последняя ночная сборка 5701. Зависания при выходе из боя есть. Пишет:
www.modxvm.com
Ошибка загрузки комментариев
timed out
Комментарии отключены
Так же есть зависание в ангаре при открытии контактов. Выдаёт вышеуказанную запись. При отключении галки "Комментарии и группы контактов" контакты не виснут.
xvm продолжает выдавать это сообщение. билд 5710
но при этом клиент не подвисает
-
А что ты патаешься этим type() сделать?
По идее надо так:
import xvm_battle.python.fragCorrelationPanel as panel total_hp_start = None A = None B = None @xvm.export('thp') def total_hp_string(): global total_hp_start, A, B if total_hp_start is None: A = panel.teams_totalhp[0] B = panel.teams_totalhp[1] total_hp_start = A + B #blablabla
На ночь глядя пришла идея, а что если красить кол-во хп по % от стартового значения и просидев до утра родилось:
Max_HP_start = 0 ############################### @xvm.export('kupnu4.tHP.colorteam') def total_hp_color_team(cur_team): global Max_HP_start if Max_HP_start == 0: Max_HP_start = max(panel.teams_totalhp) current_hp = panel.teams_totalhp[cur_team] * 100 / Max_HP_start if current_hp >= 85: return '#60FF00' elif current_hp >= 45: return '#F8F400' elif current_hp >= 15: return '#FE7903' else: return '#FE0E00'
На сколько это кривое решение? просто дуб в питоне, но с программированием как бы дружу
-
1) обратил внимание и сильно бросается в глаза большое пространство на экране загрузки у последней строки игроков
2) на 2й партии скринов не сильно, но заметна свистопляска последних 3-5 игроков по вертикале и только при использовании шрифта
все это длится с ночной сборки 4790, скрины сделаны на 4823 на чистом клиенте
лог и конфиг в комплекте (бутылками из под пива не кидать)
-
Вечер добрый.
1) нашел баг с отображением пинга и онлайна (как на логине так и в ангаре) а имеено при сочетании
"showTitle": true,
"showServerName": false,
получается только строка/стобец значений пинга или онлайна, а самой надписи нет.
2) по поводу "шанс на победу" на экране загрузки по центру он смотрится норм, но вот по табу на песчанных и снежных картах текст сливается с фоном
3) есть ли возможность вынести настройку координат "шанс на победу" в конфиг? мне больше нравилось когда над надписью карты было
Динамические макросы в Python
in Components of XVM and Addons (py_macro)
Posted · Edited by Kupnu4
И тут встает вопрос: 1й ноль под каким индексом идет?)
Ибо вот данный код:
выдает ошибочку:
2016-06-01 02:39:16: [ERROR] Traceback (most recent call last):
File "xvm_main/python_macro.py", line 152, in process_python_macro
File "xvm_main/python_macro.py", line 145, in <lambda>
File "res_mods/configs/xvm/py_macro\kupnu4_test.py", line 16, in tHP_colorteam_test
current_hp = panel.teams_totalhp[cur_team] * 100 / Max_HP_test[cur_team]
ZeroDivisionError: integer division or modulo by zero
ЗЫ
Вот жеж пень, а про слона то и забыл:
Ну все, в койку