Jump to content
Korean Random
Kapany3uk

[Lobby/Widgets] Виджет "Статистика игрока" в ангаре

Recommended Posts

Никто не закоммитил, делись плиз готовым файлом.

а ты макросы на цвет вставил? У меня красится.

attachicon.gifСнимок.PNG

Ага, по дефолту их нет. Понял. Если не сложно, то можно Ваш конфиг уже с окраской который?

Share this post


Link to post

Short link
Share on other sites

господа, прошу помощи, свой конфиг прикрепил, помогите удалить этот виджет достижений в ангаре.... 


спасибо, справились с этой проблемой)))

!!!КОНФИГ!!!.rar

Edited by MISTER093

Share this post


Link to post

Short link
Share on other sites

Ну так что, кто-нить ответит мне и Атотику, почему мы в виджетах отключаем эту хрень, а она всё равно есть в ангаре?

Share this post


Link to post

Short link
Share on other sites

Ну так что, кто-нить ответит мне и Атотику, почему мы в виджетах отключаем эту хрень, а она всё равно есть в ангаре?

 

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

Share this post


Link to post

Short link
Share on other sites

сделайте чтобы по дефолту она была отключена...
реально у многих не настолько большие мониторы, чтобы ещё и "это" впихивать на экран ангара

Edited by yanek
  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

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

Share this post


Link to post

Short link
Share on other sites

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

 

значит надо в свой конфиг сначала вписать статистику и уже потом отключить

почитай тут, там парням помогали их конфиги переделывать, может поможет

Share this post


Link to post

Short link
Share on other sites

значит надо в свой конфиг сначала вписать статистику и уже потом отключить

почитай тут, там парням помогали их конфиги переделывать, может поможет

да, вот парень всё отлично написал

Share this post


Link to post

Short link
Share on other sites

делись плиз готовым файлом.

unnormalman.rar

то чем я пользуюсь.

переименовывайте файл и имена макросов в коде кому как нравится...

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

если hangar_stat.py изменить как-то вот так:

...
    battles = itemsCache.items.getAccountDossier().getRandomStats().getBattlesCount()
    winr = itemsCache.items.getAccountDossier().getRandomStats().getWinsEfficiency()
    if wins is None or battles is None or winr is None:
        return '-'
    winrate = winr * 100
    f = winrate - int(winrate)
...

то ошибки в xvm.log больше не сыплет.

Edited by arom
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

attachicon.gifunnormalman.rar

то чем я пользуюсь.

переименовывайте файл и имена макросов в коде кому как нравится...

спасибо еще раз, но у меня маленькая проблема нарисовалась.

вывожу

{{py:unnormalman.NbattlesToWR(0.01,1)}}\n{{py:unnormalman.NbattlesToWR(0.01,-1)}}

чтобы показывало кол-во побед/сливов для изменения винрейта на 0.01

если с победами и апом винки вроде похоже на правду, то со сливами и падением процента шляпа, процент показывает равный текущему.

(еще временно воткнул для сравнения unnormalman.battlesToWins там же тоже идет подсчет +/-0.01 процента, какая-то заметная разница по кол-ву побед/поражений с unnormalman.NbattlesToWR)

post-19817-0-43535600-1504192272.png

 

скатал один бой победный

post-19817-0-80355800-1504192322.png

 

поставил для сравнения от Карапузика, там уменьшенный процент показывает правильно

{{py:winrate_next(0.01)}}\n{{py:winrate_next(-0.01)}}

post-19817-0-06863200-1504192603.png

 

если поставить stepscount -2

{{py:unnormalman.NbattlesToWR(0.01,1)}}\n{{py:unnormalman.NbattlesToWR(0.01,-2)}}

тогда похоже на правду, практически совпадает с Карапузиком, разница скорее всего из-за округлений

post-19817-0-89803700-1504192716.png

 

Так что, оставить stepscount -2?

И почему такая разница между показаниями unnormalman.battlesToWins и unnormalman.NbattlesToWR?

unnormalman.battlesToWins использовать не планирую, просто обозначил нестыковку.

Edited by steaxch

Share this post


Link to post

Short link
Share on other sites

если hangar_stat.py изменить как-то вот так:

...
    battles = itemsCache.items.getAccountDossier().getRandomStats().getBattlesCount()
    winr = itemsCache.items.getAccountDossier().getRandomStats().getWinsEfficiency()
    if wins is None or battles is None or winr is None:
        return '-'
    winrate = winr * 100
    f = winrate - int(winrate)
...

то ошибки в xvm.log больше не сыплет.

Спасибо большое, не понятно почему официально так не сделают??

Share this post


Link to post

Short link
Share on other sites

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

не хочет сразу умножаться:

2017-09-02 12:30:32: [ERROR] Traceback (most recent call last):
  File "./res_mods/mods/packages\xvm_main\python\python_macro.py", line 157, in process_python_macro
    return (func(), deterministic)
  File "./res_mods/mods/packages\xvm_main\python\python_macro.py", line 150, in <lambda>
    return (lambda: func(*args), deterministic)
  File "res_mods/configs/xvm/py_macro\hangar_stat.py", line 25, in winrate_next
    winrate = itemsCache.items.getAccountDossier().getRandomStats().getWinsEfficiency() * 100
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
arg='winrate_next(1)'
2017-09-02 12:30:32: [ERROR] Traceback (most recent call last):
  File "./res_mods/mods/packages\xvm_main\python\python_macro.py", line 157, in process_python_macro
    return (func(), deterministic)
  File "./res_mods/mods/packages\xvm_main\python\python_macro.py", line 150, in <lambda>
    return (lambda: func(*args), deterministic)
  File "res_mods/configs/xvm/py_macro\hangar_stat.py", line 25, in winrate_next
    winrate = itemsCache.items.getAccountDossier().getRandomStats().getWinsEfficiency() * 100
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
arg='winrate_next(0.5)'

Edited by arom

Share this post


Link to post

Short link
Share on other sites

 

 

не хочет сразу умножаться:

 

Да,такие же ошибки как и раньше,а с кодом выше все нормально без ошибок.

Share this post


Link to post

Short link
Share on other sites
И почему такая разница между показаниями unnormalman.battlesToWins и unnormalman.NbattlesToWR?

battlesToWins показывает количество боёв до изменения отображаемого процента побед в достижениях, а NbattlesToWR показывает кол-во боёв необходимых для точного достижения процента побед.

 

пример: текущий %побед = 55,430

NbattlesToWR посчитает кол-во побед до 55,440, а battlesToWins посчитает ко-во побед до 55,435 так как уже минимум при 55,435 в достижениях будет отображаться 55,44 из-за округления до сотых.

с кол-вом поражений та же ситуация.

 

есть в планах учесть это всё и переделать NbattlesToWR чтобы при step=0.01 он считал с учетом округлений в отображении, но это будет через неделю может только. сейчас в командировке и времени совсем нет :(

 

а пока как я и писал

 

если stepscount == 1, то ближайшего в сторону увеличения и кратного шагу, stepscount == -1 значит ближайшего в сторону уменьшения и кратного шагу.

то есть при %побед 55,431 и stepscount == -1 будет посчитано количество боёв до 55,43

 

Так что, оставить stepscount -2?

этого делать не стоит так как при %побед = 55,434 в достижениях будет показано 55,43, а макрос выдаст количество боёв до 55,420. но вот уже при % побед = 55,435 в достижениях будет 55,44 а макрос всё равно выдаст кол-во боёв до 55,42.

как-то так.

Edited by CrazyST

Share this post


Link to post

Short link
Share on other sites

battlesToWins показывает количество боёв до изменения отображаемого процента побед в достижениях, а NbattlesToWR показывает кол-во боёв необходимых для точного достижения процента побед.

 

Понятно, но разница сильно смутила.

Но не суть, я  тут на днях выучил питон используя тему "Динамические макросы в Python"  :heh:  и нарисовал себе свой скрипт, используя твои, Карапузика и Найшт Драгона заготовки.

Задача была отслеживать кол-во побед/сливов для изменения в отображаемой винке на +/- 0,01%, т.к. это все в ангаре перед глазами и изменяется в реальном времени после каждого боя. Ну и до кучи, чтобы при малом кол-ве боев показывалось изменение винрейта после одного боя в зависимости от его исхода. Я так прикинул, это где-то до 5к боев, победа/слив изменяют общий процент больше чем на 0,01.

Заморачиваться не стал, нарисовал просто два макроса винкаАп, винкаДоун, получилось вот что(сильно не ржать):

### Количество побед для увеличения винрейта на 0.01%, вызов: {{py:winrateUp}}
@xvm.export('winrateUp')
def winrateUp():
    if dependency.instance(IBootcampController).isInBootcamp():
        return
    itemsCache = dependency.instance(IItemsCache)
    wins = itemsCache.items.getAccountDossier().getRandomStats().getWinsCount()
    battles = itemsCache.items.getAccountDossier().getRandomStats().getBattlesCount()
    winr = itemsCache.items.getAccountDossier().getRandomStats().getWinsEfficiency()
    if wins is None or battles is None or winr is None:
        return '-'
    winrate = winr * 100
    delta = ((wins + 1.0) / (battles + 1) - float(wins) / battles) * 100
    if delta <= 0.01:
        next = winrate + 0.01
    else:
        next = winrate + delta
    nextMin = ((round(next * 100) + 0.5) / 100) - 0.01
    value = int(math.ceil((nextMin * battles - wins * 100)  / (100 - nextMin)))
    return '<font color="#60FF00">{}</font><font color="#F9F1BC">{}</font>{:0.2f}%'.format(value, '{{l10n:toWithSpaces}}', next)

### Количество поражений для снижения винрейта на 0.01%, вызов: {{py:winrateDown}}
@xvm.export('winrateDown')
def winrateDown():
    if dependency.instance(IBootcampController).isInBootcamp():
        return
    itemsCache = dependency.instance(IItemsCache)
    wins = itemsCache.items.getAccountDossier().getRandomStats().getWinsCount()
    battles = itemsCache.items.getAccountDossier().getRandomStats().getBattlesCount()
    winr = itemsCache.items.getAccountDossier().getRandomStats().getWinsEfficiency()
    if wins is None or battles is None or winr is None:
        return '-'
    winrate = winr * 100
    delta = (float(wins) / battles - wins / (battles + 1.0)) * 100
    if delta <= 0.01:
        next = winrate - 0.01
    else:
        next = winrate - delta
    nextMin = ((round(next * 100) + 1.5) / 100) - 0.01
    value = int(math.ceil((nextMin * battles - wins * 100)  / (100 - nextMin)))
    return '<font color="#FF5349">{}</font><font color="#F9F1BC">{}</font>{:0.2f}%'.format(value, '{{l10n:toWithSpaces}}', next)

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

Почему-то при подсчете дельты не получилось использовать winrate или winr, чтобы типа так было

delta = (wins + 1.0) / (battles + 1) - winrate 

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

 

 

В общем моя доволен, где что кривое, ткните носом, питон я знаю ровно 3 дня.

Несколько скринов

post-19817-0-01848400-1504793511_thumb.png post-19817-0-35620700-1504793534_thumb.png post-19817-0-02505000-1504793571.png

post-19817-0-33646000-1504793597_thumb.png

Скрипт целиком hangar_total_stat.rar

Немного готовых конфигов под него тут (статистика в ангаре и шапка ангара)

 

UPD. 08.09.17 Исправил косяк, хотел же победы/сливы в отображаемой винке на +/- 0,01%, а было до реальной. Теперь вроде точно.

Edited by steaxch
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
2017-09-11 17:39:07: xvm_integrity results: incorrect!
extra file res_mods/mods/packages/xvm_main/python/vehinfo_stat_avg.py
extra file res_mods/mods/packages/xvm_main/python/vehinfo_wn8.py
extra file res_mods/mods/packages/xvm_main/python/vehinfo_xtdb.py
extra file res_mods/mods/packages/xvm_main/python/vehinfo_xte.py
hash mismatch in file: res_mods/mods/packages/xvm_sounds/python/__init__.py
hash mismatch in file: res_mods/configs/xvm/py_macro/hangar_stat.py

Вот такое в логе XVM наблюдается у меня одного ?  Понял сам от чего у меня так последние две строки, а остальное нормально?

Edited by refaol

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