Jump to content
Korean Random
vlad_cs_sr

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

Recommended Posts

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

 

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

вроде в этом случае мы все равно увидим тень от текста, так что из двух зол вариантов надо выбирать шрифт. 

ИМХО надо "домучить" картинку в "header"  и не париться форматированием battleLabels, а все "отдать на откуп" ру-макросам.

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites
по-моему в этом случае мы все равно увидим тень от текста

 

Нет, скрывается все поле.

 

ИМХО надо "домучить" картинку в "header"

 

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

Edited by night_dragon_on

Share this post


Link to post

Short link
Share on other sites

ИМХО надо "домучить" картинку в "header"  и не париться форматированием battleLabels, а все "отдать на откуп" ру-макросам.

ИМХО, Пока не изменят парсер XVM, не получится. 

Share this post


Link to post

Short link
Share on other sites

ИМХО, Пока не изменят парсер XVM, не получится. 

это я уже понял...

 

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

проблема в том, что если надо вместить оба макроса в одно battleLabels поле

post-24956-0-63680300-1471462661_thumb.jpg

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

Share this post


Link to post

Short link
Share on other sites

А зачем их в одно поле помещать? Или  я что-то не понял?

Share this post


Link to post

Short link
Share on other sites

А зачем их в одно поле помещать? Или  я что-то не понял?

это такая "хотелка", а текущий вариант воплощения и парсер хвм такую хотелку напрочь исключают (только если лезть в "дебри" ру-макросов, а не всем это дано)

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

а зачем в среднем уроне проверка на тип боя? 

def avgDamage(dmg_total):
    global playerAvgDamage
    if playerAvgDamage == None:
        return 'null'
    elif battletype != 1:
        return 'null'

имхо она тут не нужна

 

и тем более, лог на нее "ругается", поскольку в avgDamage тип боя еще не определен...

    elif battletype != 1:
NameError: global name 'battletype' is not defined
arg='xvm_avgDamage(0)'

Share this post


Link to post

Short link
Share on other sites

и тем более, лог на нее "ругается", поскольку в avgDamage тип боя еще не определен...

    elif battletype != 1:
NameError: global name 'battletype' is not defined
arg='xvm_avgDamage(0)'

сделай так

def avgDamage(dmg_total):
    global playerAvgDamage
    battletype = BigWorld.player().arena.guiType
    if playerAvgDamage == None:
        return 'null'
    elif battletype != 1:
        return 'null'
Edited by Ekspoint

Share this post


Link to post

Short link
Share on other sites
сделай так

это понятно, но только зачем вообще? средний урон - он и в Африке средний и от типа боя не должен зависеть (или getRandomStats() отдает среднее значение по серверу только для случайных боев? и да, я вижу слово "Random" :)) но не знаю только ли по одному типу боя эта статистика или ротные бои тоже здесь...)

Edited by Kapany3uk
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

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

в общем покумекал и предлагаю изменение, которое решает все проблемы с отображением, включая картинки, и оставляет форматирование строки вывода в *.хс файлах, но при этом не мудрим с альфой и, главное!, моя "хотелка" с обоими значениями в одной строке вполне реализуема :))

 

создаем пару секций в "texts", куда вписываем значения по-умолчанию и где ЦА может писать что душе угодно, сюда же вполне "ляжет" локализация типа "{{l10n:avgDamage}}" и т.п.

'texts.xc'

    // формат строки с отображением "среднего урона"
    "avgDamageText": {
      // заголовок, вставляется перед значением среднего урона
      "header": "Средний урон: ", // можно картинку, можно все, что не запрещено :)) у меня так: "(<img src='img://gui/maps/icons/vehParams/damage.png' vspace='-6'>",
      // окончание, вставляется после значения урона
      "footer": ""  // соответственно также можно вставить все что хочешь: у меня ")"
    },
    // формат строки с отображением "основного калибра"
    "mainGunText": {
      // заголовок
      "header": "Основной калибр: ",  // аналогично урону, мое: "<img src='img://gui/maps/icons/achievement/32x32/mainGun.png' vspace='-10'>",
      // окончание
      "footer": ""
    },

'xvm.py'

заменяем "экспорты"

@xvm.export('xvm.total_hp.avgDamage', deterministic=False)
def total_hp_avgDamageText(dmg_total):
    headerDmg = config.get('texts/avgDamageText/header')
    footerDmg = config.get('texts/avgDamageText/footer')
    return '' if total_hp.avgDamage(dmg_total) == 'null' else '%s%s%s' % (headerDmg, total_hp.avgDamage(dmg_total), footerDmg)

@xvm.export('xvm.total_hp.mainGun', deterministic=False)
def total_hp_mainGunText(dmg_total):
    headerGun = config.get('texts/mainGunText/header')
    footerGun = config.get('texts/mainGunText/footer')
    return '' if total_hp.mainGun(dmg_total) == 'null' else '%s%s%s' % (headerGun, total_hp.mainGun(dmg_total), footerGun)

сюда, а не в total_hp.py, чтобы не дублировать 'import xvm_main.python.config as config' который в xvm.py уже есть.

 

post-24956-0-98578400-1471477424_thumb.jpg

 

ЗЫ, возможно позже @sirmax запилит макросы для {{калибра}} и {{урона}}, тогда config.get() будет не нужен, будем как в хитлоге писать вообще одной строкой весь текст для вывода :)

Edited by Kapany3uk
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

@Kapany3uk, и еще хотел спросить: зачем ты макрос {{hitlog.dmg-total}} в кавычки берешь? 

{{py:xvm_mainGun(' ', '{{hitlog.dmg-total}}')}}

Share this post


Link to post

Short link
Share on other sites
зачем ты макрос {{hitlog.dmg-total}} в кавычки берешь? 

это не я :))

содрал, как у @night_dragon_on было

 

"format": "Основной калибр: {{py:xvm.total_hp.mainGun('{{hitlog.dmg-total}}')}}"

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

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

@Kapany3uk, не понятно зачем число передавать как строку? 

я хз :hmm:

написал же - так у @night_dragon_on в авторской редакции... и кстати, у меня кавычек в последнем варианте нет :))

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

Предлагаю заменить это:

from Avatar import PlayerAvatar
from Vehicle import Vehicle

class PlayerDamages(object):
   
    def __init__(self):
        self.teamHits = True
   
    def reset(self):
        self.teamHits = True
   
    def onHealthChanged(self, vehicle, newHealth, attackerID, attackReasonID):
        if vehicle.isStarted:
            player = BigWorld.player()
            if attackerID == player.playerVehicleID:
                attacked = player.arena.vehicles.get(vehicle.id, dict())
                if attacked.get('team') == player.team:
                    self.teamHits = False

data = PlayerDamages()

@registerEvent(Vehicle, 'onHealthChanged')
def onHealthChanged(self, newHealth, attackerID, attackReasonID):
    data.onHealthChanged(self, newHealth, attackerID, attackReasonID)

на это:

from Avatar import PlayerAvatar
from Vehicle import Vehicle
from constants import VEHICLE_HIT_FLAGS

class PlayerDamages(object):
    def __init__(self):
        self.teamHits = True

    def reset(self):
        self.teamHits = True

    def showShotResults(self, playerAvatar, results):
        arenaVehicles = playerAvatar.arena.vehicles
        VHF = VEHICLE_HIT_FLAGS
        for r in results:
            vehicleID = r & 4294967295L
            flags = r >> 32 & 4294967295L
            if playerAvatar.team == arenaVehicles[vehicleID]['team'] and playerAvatar.playerVehicleID != vehicleID:
                if flags & (VHF.IS_ANY_DAMAGE_MASK | VHF.ATTACK_IS_DIRECT_PROJECTILE):
                    self.teamHits = False

data = PlayerDamages()

@registerEvent(PlayerAvatar, 'showShotResults')
def showShotResults(self, results):
    data.showShotResults(self, results)
Edited by ktulho
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
на это

проверил в бою (опять на 304 пытался поцарапать японца :)) - все нормально, если нет урона союзнику - не красит.

при стрельбе по своим - красит. отлично!

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

 

 

Нельзя задевать союзников прямыми выстрелами
, таран считается  за прямой выстрел?

Share this post


Link to post

Short link
Share on other sites

 

 

Думаю нет (хотя у ВГ все возможно), пока достаточно учитывать попадания с уроном и без урона в гусеницу/орудие.

Нафига отвечать в старом посте на вопрос из нового? путает ппц...

  • Downvote 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...