Jump to content
Korean Random
goodman

Динамические макросы в Python

Recommended Posts

 

 

1. время исчезновение танка после засвета зависит он перков, экипажа, модулей, расходников? или оно стандартно 10 сек.
Это абсолютно рандомное время,от танка или еще чего не зависит,максимум 10 сек,ну и злопамятный,т.е. теоретический максимум 12 сек.

Share this post


Link to post

Short link
Share on other sites

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

"textFormat": { "font": "micra", "color": "0x00CE60", "align": "center", "size": 18 },
"format": "{{py:xvm.sixthSenseTimer(10)}}<font size='12'>{{py:xvm.sixthSenseTimer(10)?с.|''}}</font>"

Вроде как пока работает,все получилось:

93985ef96971.jpg

Но когда лампа не горит:

12b1eabc4f5c.jpg

Share this post


Link to post

Short link
Share on other sites

 

 

Сделал py_macros {{py:xvm.sixthSenseTimer(10)}}.
подскажи, как задать таймер формата 10.0 (с десятыми секунд)?

Попробовал в .ру заменить 1(-1) на 0.1(-0.1) везде по тексту, почти получилось, но иногда вылезает типа 6,6999999996 и вместо 5.0 просто 5... ЧЯДНТ?

Share this post


Link to post

Short link
Share on other sites

можно. Количество строк задается в 7 строке:

    makeSettingsVO['maxLinesCount'] = 2

Файл скопировать \res_mods\configs\xvm\py_macro\

attachicon.gifmessenger.rar

 

Не было в планах сделать все то же но + прокрутка ?

Share this post


Link to post

Short link
Share on other sites

Только что специально на чистом попробовал,то же самое,висит до конца боя.

ktulho,вот логи с чистого клиента(специально досмотрел репу до конца,чтоб были максимально полные) и сам реплей.Изменил только батллейбл в дефолтном конфиге,ну и все что нужно для индикатора,единственное атлас Карапузика попробовал за одно,только атлас,ничего более.Может особенность стандартного(не HD) клиента,может чисто этот реплей,другие не играл,может еще что.В принципе не критично,но такая особенность есть.Повторюсь,пока живой все работает нормально,появляется и пропадает с индикатором.

'скрин'

12160688c5d6.jpg

П.С:забыл сказать,версия ХВМ релизная 6.4.7.1

Есть решение проблемы или пока все глухо?

Share this post


Link to post

Short link
Share on other sites

подскажи, как задать таймер формата 10.0 (с десятыми секунд)?

Попробовал в .ру заменить 1(-1) на 0.1(-0.1) везде по тексту, почти получилось, но иногда вылезает типа 6,6999999996 и вместо 5.0 просто 5... ЧЯДНТ?

 

Вот такую постановку не пробовал?{{py:xvm.sixthSenseTimer(10)%.1f}}.Мало ли.Я бы тоже от десятых не отказался....ну и маленькой с. )))

 

 

Есть решение проблемы или пока все глухо?
Я в питоне не понимаю,пока тихо...правда я только на одном реплее проверял,другие с живыми танками до конца боя,хочу еще в бою проверить.У тебя тоже висит после смерти? 

Share this post


Link to post

Short link
Share on other sites

 

 

подскажи, как задать таймер формата 10.0 (с десятыми секунд)?

 

Вот такую постановку не пробовал?{{py:xvm.sixthSenseTimer(10)%.1f}}.Мало ли.Я бы тоже от десятых не отказался....ну и маленькой с. )))
, а зачем? Вы хотите обновлять поле 10 раз в секунду?

Share this post


Link to post

Short link
Share on other sites

..........У тебя тоже висит после смерти?

да есть такая шляпа причем какой-либо закономерности я так и не уловил)))

...........Я бы тоже от десятых не отказался....

А может там надо как в прицеле с таким параметром  делать как { "delimiter": 2 }

Edited by androdizel

Share this post


Link to post

Short link
Share on other sites

Вроде как пока работает,все получилось

Но когда лампа не горит:

Попробуй ещё в файле sixthSense.py в 14 строке 0 заменить на -1.

Share this post


Link to post

Short link
Share on other sites

Попробуй ещё в файле sixthSense.py в 14 строке 0 заменить на -1.

Все равно висит и теперь размер всего стал 12...скорее всего,меньше в общем

В .ру файле так же?

def currentTime():
    global timer
    timer -= 1
    if timer >= -1: 

у меня в нотепаде++ выделенное 14 строка,может не там?

В лейблах так

"screenHAlign": "center",
      "shadow": { "alpha": 90, "blur": 1.5, "strength": 5 },
      "textFormat": { "font": "micra", "color": "0x00F170", "align": "center", "size": 18 },
      "format": "{{py:xvm.sixthSenseTimer(10)}}<font size='12'>{{py:xvm.sixthSenseTimer(10)?с.|''}}"
    },
Edited by Slava7572

Share this post


Link to post

Short link
Share on other sites

 

Все равно висит и теперь размер всего стал 12...скорее всего,меньше в общем

В .ру файле так же?

def currentTime():
    global timer
    timer -= 1
    if timer >= -1: 

у меня в нотепаде++ выделенное 14 строка,может не там?

В лейблах так

"screenHAlign": "center",
      "shadow": { "alpha": 90, "blur": 1.5, "strength": 5 },
      "textFormat": { "font": "micra", "color": "0x00F170", "align": "center", "size": 18 },
      "format": "{{py:xvm.sixthSenseTimer(10)}}<font size='12'>{{py:xvm.sixthSenseTimer(10)?с.|''}}"
    },

Правильно, надо еще в 7 и 30 строчках -1 на -2 заменить.

Хотя я все равно не понимаю, почему это не работает. @sirmax почему, когда py_macro возвращает '' (длина строки 0), на экране все равно отображается 'с.'?

"format": "{{py:xvm.sixthSenseTimer(10)}}<font size='12'>{{py:xvm.sixthSenseTimer(10)?с.|''}}"

Share this post


Link to post

Short link
Share on other sites

, а зачем? Вы хотите обновлять поле 10 раз в секунду?

вопрос не столько в этом, сколько в том, что при обратном отсчете с десятыми период в 10 секунд должен отображаться так (имхо):

10.0

9.9

9.8

9.7

...

1.1

1.0

0.9

0.8

...

0.2

0.1

0.0

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

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

Правильно, надо еще в 7 и 30 строчках -1 на -2 заменить.

Хотя я все равно не понимаю, почему это не работает. @sirmax почему, когда py_macro возвращает '' (длина строки 0), на экране все равно отображается 'с.'?

"format": "{{py:xvm.sixthSenseTimer(10)}}<font size='12'>{{py:xvm.sixthSenseTimer(10)?с.|''}}"

То же самое((((Все символы маленького размера,видимо 12,хотя в "textFormat" 18 и до этого был такой размер.Когда лампа не работает-висит с.

Вот такой .ру получился в итоге:

from gui.Scaleform.daapi.view.battle.shared.indicators import SixthSenseIndicator
from xfw import *
import BigWorld
from Avatar import PlayerAvatar


timer = -2
timerBegin = 0


def currentTime():
    global timer
    timer -= 1
    if timer >= -1:
        BigWorld.callback(1, currentTime)
    as_event('ON_SIXTH_SENSE_SHOW')


@registerEvent(SixthSenseIndicator, '_SixthSenseIndicator__show')
def show(self):
    global timer
    timer = timerBegin
    BigWorld.callback(1, currentTime)
    as_event('ON_SIXTH_SENSE_SHOW')


@registerEvent(PlayerAvatar, '_PlayerAvatar__destroyGUI')
def destroyGUI(self):
    global timer
    timer = -2


@xvm.export('xvm.sixthSenseTimer', deterministic=False)
def xvm_sixthSenseTimer(tb):
    global timerBegin
    timerBegin = tb
    return timer if timer >= 0 else ''

 

Share this post


Link to post

Short link
Share on other sites

@Kapany3uk, я к тому, что это крайне не точный таймер. Можно пропасть из засвета, когда таймер будет показывать 8, а можно оставаться в засвета и после того, как пропал отсчет. 

Share this post


Link to post

Short link
Share on other sites

@Kapany3uk, я к тому, что это крайне не точный таймер. Можно пропасть из засвета, когда таймер будет показывать 8, а можно оставаться в засвета и после того, как пропал отсчет.

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

Вероятно дело ещё и в том, что до недавнего времени все анимированные таймеры и статичные показатели времени, используемые лично мною, имеют десятые секунд: таймер своей перезарядки в прицеле, таймер в дамаг-логе, таймеры починки модулей на дамаг панели, время перезарядки в инфо-панели...

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

Share this post


Link to post

Short link
Share on other sites

@sirmax почему, когда py_macro возвращает '' (длина строки 0), на экране все равно отображается 'с.'?"

Потому что нужно возвращать None.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

@Slava7572, попробуй с этим  sixthSense.rar


 

 

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

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

Edited by ktulho

Share this post


Link to post

Short link
Share on other sites

 

 

Зачем отображать с точностью до десятых

потому что

 

 

общая концепция отображения таймеров/времени с десятыми
включая время перезарядки орудия в инфо-панели и таймере собственной перезарядки в прицеле ВГ

 

'офф, имхо'

 

 

если ошибка составляет несколько секунд? Зачем нагружать систему бесполезной информацией?
да при чем тут "ошибка"?! Зачем ссылки на несоответствие отсчета реальному выходу из засвета? у таймера нет такого предназначения - отображать выход из засвета - у него предназначение показать сколько прошло времени от начала отображения картинки (имхо). При чем тут вообще точность?! Я веду речь о формате отображения и кмк этот формат в некотором роде задан клиентом - там все таймеры/время с десятыми/сотыми долями... и да, ради единообразия готов обновлять поле 10 раз в секунду - ничего страшного и критического влияния на производительность с другими таймерами замечено не было (тот же таймер перезарядки в твоем дамаг-логе и/или таймер ремонта модулей у @Kotyarko_O)

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