Jump to content
Korean Random

Kupnu4

User
  • Posts

    10
  • Joined

  • Last visited

Posts posted by Kupnu4

  1. Так неправильно, нужно hp_max_team = [0, 0]

     

    И тут встает вопрос: 1й ноль под каким индексом идет?)

    Ибо вот данный код:

    ##########################################
    Max_HP_test = [0, 0]
    UniqueID_test = None
    
    @xvm.export('kupnu4.tHP.test')
    def tHP_colorteam_test(cur_team):
    	global Max_HP_test, UniqueID_test
    	arenaUniqueID = BigWorld.player().arenaUniqueID
    	if UniqueID_test != arenaUniqueID:
    		UniqueID_test = arenaUniqueID
    		Max_HP_test[cur_team] = panel.teams_totalhp[cur_team]
    	current_hp = panel.teams_totalhp[cur_team] * 100 / Max_HP_test[cur_team]
    	if current_hp >= 85:
    		return '#60FF00'
    	elif current_hp >= 45:
    		return '#F8F400'
    	elif current_hp >= 15:
    		return '#FE7903'
    	else:
    		return '#FE0E00'
    ##########################################
    

     

    выдает ошибочку:

    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

     

    ЗЫ

    Вот жеж пень, а про слона то и забыл:

    ##########################################
    Max_HP_test = [0, 0]
    UniqueID_test = None
    
    @xvm.export('kupnu4.tHP.test')
    def tHP_colorteam_test(cur_team):
    	global Max_HP_test, UniqueID_test
    	arenaUniqueID = BigWorld.player().arenaUniqueID
    	if UniqueID_test != arenaUniqueID:
    		UniqueID_test = arenaUniqueID
    		Max_HP_test[0] = panel.teams_totalhp[0]
    		Max_HP_test[1] = panel.teams_totalhp[1]
    	current_hp = panel.teams_totalhp[cur_team] * 100 / Max_HP_test[cur_team]
    	if current_hp >= 85:
    		return '#60FF00'
    	elif current_hp >= 45:
    		return '#F8F400'
    	elif current_hp >= 15:
    		return '#FE7903'
    	else:
    		return '#FE0E00'
    ########################################## 

     

    Ну все, в койку

  2. 'тык'

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

     

    '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)

    57e4af237927.png

     

     

    Во втором случае расчет для одной команды производится нормально, а для другой остается постоянной переменная с максимальным начальным значением запаса прочности.

     

    '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)

    650d53c2e868.png

     

    Так что тут для правильного расчета нужно будет создавать две отдельных функции

     

    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)
    
  3. работает и ладно, насчет чистоты кода не парься, ты же для себя делаешь.

     

    а полевые испытания показали что Max_HP_start приняло значение из 1го боя и всё, больше не хочет меняться. вот теперь как это решить?  :dots:

    сделать проверку на обнуление одного из хп, а вдруг захват базы  :hmm:

  4. Последняя ночная сборка 5701. Зависания при выходе из боя есть. Пишет: 

     

    www.modxvm.com

    Ошибка загрузки комментариев

    timed out

    Комментарии отключены

     

    Так же есть зависание в ангаре при открытии контактов. Выдаёт вышеуказанную запись. При отключении галки "Комментарии и группы контактов" контакты не виснут.

     

    xvm продолжает выдавать это сообщение. билд 5710

    но при этом клиент не подвисает

    python.log

    xvm.log

  5.  

    А что ты патаешься этим 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'
    

    На сколько это кривое решение? просто дуб в питоне, но с программированием как бы дружу

  6. 1) обратил внимание и сильно бросается в глаза большое пространство на экране загрузки у последней строки игроков

    2) на 2й партии скринов не сильно, но заметна свистопляска последних 3-5 игроков по вертикале и только при использовании шрифта

    все это длится с ночной сборки 4790, скрины сделаны на 4823 на чистом клиенте

    лог и конфиг в комплекте (бутылками из под пива не кидать)

    post-33543-0-58319700-1441821548_thumb.jpg

    post-33543-0-80823300-1441821553_thumb.jpg

    post-33543-0-39774800-1441821563_thumb.jpg

    post-33543-0-21711900-1441821566_thumb.jpg

    logs.rar

    config.rar

  7. Вечер добрый.

     

    1) нашел баг с отображением пинга и онлайна (как на логине так и в ангаре) а имеено при сочетании

    "showTitle": true,

    "showServerName": false,

    получается только строка/стобец значений пинга или онлайна, а самой надписи нет.

    2) по поводу "шанс на победу" на экране загрузки по центру он смотрится норм, но вот по табу на песчанных и снежных картах текст сливается с фоном

    3) есть ли возможность вынести настройку координат "шанс на победу" в конфиг? мне больше нравилось когда над надписью карты было

×
×
  • Create New...