Jump to content
Korean Random
ShuraBB

Мод "Потерянное время" - статистика за сессию, по танкам, по картам и многое другое

Recommended Posts

еще пара нужных макросов: в ПМоде есть так называемые {{AccountCredits}} и {{AccountGold}} - показывают изменения по кредитам и голде за сессию по акку в целом (если покупал или продавал танки/снаряжение и т.п. то отражает с учетом этих "движений" в отличие от данных по боям) Есть возможность добавить?

 

upd ну и как бы оч. жду макросов иконок-ачивок и {{NumWinRate}}

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

Версия 0.9.15 #2.12

Добавлены макросы:

Общие:
{{AccCredits}}	- Текущее кол-во кредитов
{{AccGold}}	- Текущее кол-во золота
{{AccFreeXP}}	- Текущее значение свободного опыта
{{WGR}}		- Текущее значение ВГ рейтинга
{{XWGR}}	- Текущее значение ВГ рейтинга по шкале XVM

Показатели статистики на начало сессии:
{{*_DossCredits}}	- Кол-во кредитов
{{*_DossGold}}		- Кол-во золота
{{*_DossFreeXP}}	- Кол-во свободного опыта
{{*_DossWGR}}		- Значение ВГ рейтинга

Влияние сессии на аккаунт:
{{*_DiffCredits}}	- Изменение кол-ва кредитов за сессию
{{*_DiffGold}}		- Изменение кол-ва золота за сессию
{{*_DiffFreeXP}}	- Изменение кол-ва свободного опыта за сессию
{{*_DiffWGR}}		- Изменение значения ВГ-рейтинга за сессию

В результатах боя:
{{BattleRatioDamageWN8}}	- Коэффициент нанесенного урона к ожидаемому значению WN8

Сессионная статистика:
{{*_NumWinRate}}		- Цифровой показатель побед (WinCounter - DefeatCounter - DrawCounter)
  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

Добавлены макросы:

спасибо!

иконки ачивок ждем?

 

'есть вопрос'

по вн8 и РЭ:

 

post-24956-0-10473700-1467417340.jpg  - собственно все на скрине: вн8 и РЭ считает по-разному... Где "правильнее"?

'полный скрин'

post-24956-0-48292300-1467417363_thumb.jpg

 

и еще заметил: DiffCredits срабатывает не сразу, как продал/купил что-нить (в моем случае после перезагрузки клиента)

Share this post


Link to post

Short link
Share on other sites

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

WARNING: [TimeSpent] The JSON configuration file is not correct. Will use the default settings!

возможно "прикрутить" к этому описание ошибки? Чтобы понять причину: запятая, имя макроса не определено, скобки и т.п.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

столкнулся со следующими неприятностями:

 

'UPD --> * в боевой чат иногда выводит дубль сообщения'

upd перестал выводить, видимо что-то в конфиге "улеглось" :))

 

post-24956-0-35618200-1467511279.jpg

причем до того, как я изучил таки список макросов для "результатов в чат" и поправил конфиг, первое сообщение сработало с "расширенным составом" макросов :))

post-24956-0-93662800-1467511278.jpg

 

'UPD -->* с "поломанным" конфигом кэш статистики почему-то обнуляется'

upd вроде перестал "обнулять", во всяком случае при "ReloadConfig": true после исправления нормально отображает

 

если перезайти в клиент или закрыть-открыть системный канал при "ReloadConfig": true)... крайне неудобно, что после "починки" чтобы что-то увидеть приходится снова заходить в бой...

 

'* вопрос по выводу макросов штрафов/компенсаций за урон по/от союзников'

на левом скрине попытка внести строки с этими макросами внутрь "UM:Results": [ ... ] видно, что текст отображается при нулевых значениях штрафов

на правом скрине попытался внести эти макросы отдельно, в "UserMacros": { ... } - не сработало.

post-24956-0-08111900-1467512039_thumb.jpg

'код'

        "UM:creditsPenalty": "\n<font size='11'>Штраф за урон союзникам:  <img src='img://gui/maps/icons/library/CreditsIcon-2.png' width='12' height='12' align='baseline' vspace='-4'><font color='#E63628'>{{BattleContributionOut}}</font>   </font>",
        "UM:creditsCompensation": "\n<font size='11'>Компенсация за урон от союзников:  <img src='img://gui/maps/icons/library/CreditsIcon-2.png' width='12' height='12' align='baseline' vspace='-4'><font color='#FFEEA3'>{{BattleContributionIn}}</font></font>",
        "UM:xpPenalty": "<img src='img://gui/maps/icons/library/FreeXpIcon-1.png' width='12' height='12' align='baseline' vspace='-3'><font size='11' color='#D44B5D'>{{BattlePenalty}}</font>",

 

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

 

'UPD -->* неудобная логика макроса BattleMarkOfMastery.'

выводит уже давным давно полученный уровень мастерства, а хотелось бы текущий боевой, а то при отсутствии знака (при неудовлетворительном результате боя/сессии) все равно выводится знак степени мастера, а хотелось бы вывода "" (пусто) либо 'none' (к примеру, на левом скрине выше, при вн8 менее 300 выводит уже присвоенную 1-ю степень мастера)

 

'* паттерн для макроса(ов) (Battle)DailyXPFactor'

* хотелось бы выводить форматированную строку если "сбил звезду", а не просто x2/x3/x5

 

'* можно ли добавить макрос (Batttle)PiercingsRatio?'

- процент попаданий с нанесённым уроном (Piercings * 100 / Hits). Привык к подобному, не хватает (для окраски)...

 

'UPD -->* с заголовком ачивок все Ок, остались иконки...'

upd сорь, накосячил в конфиге, заголовок ачивок привязался :))

 

Если засунуть в "ResultPattern" то выводится независимо от наличия/отсутствия ачивок.

post-24956-0-05316900-1467515231.jpg

 

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

"Achievements": {
    "Header": "<img src='img://.../Planka_{{BattleResult}}.png' width='220' height='13' align='baseline' vspace='9'>", 

В дополнение к этому "изврату" нужен паттерн вывода строки с ачивкой (когда будут иконки как-то их же надо будет форматнуть и "запихать" в конфиг? :))

Edited by Kapany3uk
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

ShuraBB

каждый раз после обновления мода, слетает кеш статистики, так и должно быть? 

Share this post


Link to post

Short link
Share on other sites

ShuraBB

каждый раз после обновления мода, слетает кеш статистики, так и должно быть?

 

ну это как бы логично

Share this post


Link to post

Short link
Share on other sites

>иконки ачивок ждем?
Ждем.

>есть вопрос по вн8 и РЭ
PMod до сих пор использует 26ю версию таблицы :-(
Мой мод, PMod, WN8 с v.27
post-26613-0-61539300-1467627277_thumb.png
Мой мод, PMod, WN8 с v.26
post-26613-0-46766200-1467627289_thumb.png
Как Андрюха считает EFF - хз.

>и еще заметил: DiffCredits срабатывает не сразу, как продал/купил что-нить
Ну... никто и не обещал ;-) Вся статистика пересчитывается после боя (ну или при первом входе)

>добавь плз вот этот wn8
Добавить не проблема, проблема в том что КТТС никак не может сделать постоянную ссылку на свою таблицу чтобы ее можно было без проблем грузить и не парится в случае если у них сменилась версия. Я им написал об этом уже где можно, но КТТС он и есть КТТС :-))) А так фактически все готово для этого.

>возможно "прикрутить" к этому описание ошибки? Чтобы понять причину: запятая, имя макроса не определено, скобки и т.п
Можно, запишу в КТТС

>в боевой чат иногда выводит дубль сообщения
А в PMod-е вывод таких-же сообщений кто будет выключать? ;-)

>первое сообщение сработало с "расширенным составом" макросов :))
В "коротких результатах" тоже много инфы у тебя она и отображается.

>с "поломанным" конфигом кэш статистики почему-то обнуляется
Ок. Добавил проверку, больше не будет перезаписывать в этом случае.

>цель - выводить не только цифровое значение штрафа/компенсации при наличии, а паттерн
Угу, я тут подумал и решил пойти еще дальше - для любого основного макроса (т.е. те которые без Avg, :r, c: и т.п) можно будет сделать свой шаблон который будет или не будет выводится.

>неудобная логика макроса BattleMarkOfMastery
BattleMarkOfMastery - это МАКСИМАЛЬНО ДОСТИГНУТЫЙ знак мастерства. Т.е. если получил мастера - тут так и будет мастер, а тебе нужен {{BattleMastery}}.

>можно ли добавить макрос (Batttle)PiercingsRatio?
{{BattleDamageHitsRatio}} и {{DamageHitsRatio}} ;-)

>каждый раз после обновления мода, слетает кеш статистики, так и должно быть?
Когда в новой версии в кеше появляются новые данные, кеш сбрасывается и записывается в новом формате.

Edited by ShuraBB
  • Upvote 3

Share this post


Link to post

Short link
Share on other sites
А в PMod-е вывод таких-же сообщений кто будет выключать? ;-)

вот же... а я то думаю, как так исправилось само - просто снес ПМод и дубли прекратились :)) 

 

для любого основного макроса (т.е. те которые без Avg, :r, c: и т.п) можно будет сделать свой шаблон который будет или не будет выводится.

ЗДОРОВО! 

 

(хотелки):

- в "colors" есть секция "Any" - можно добавить что-то типа "AnyCredits" которая будет окрашивать только кредиты (без золота), чтобы не прописывать отдельные секции цвета для "Credits", "CreditDebit", :DiffCredits" (там же и все подобные "...Avg" для кредитов)?

- по поводу "...Avg" - можно сделать так, чтобы окраска "средних" при отсутствии конкретной секции с "...Avg" была из секции основного макроса: к примеру, чтобы секция "DamageDealt": {...} красила также макрос {{c:DamageDealtAvg}} - но только если нет непосредственно секции "DamageDealtAvg": {...} ?

- если в пользовательские макросы "UserMacros" добавить подстановку цвета (к примеру "color-head": "#FFE87F",   // Цвет заголовка), то конструкция вида <font size='14' color='{{color-head}}'> не срабатывает. Можно сделать?

- при {{*:0f}} нулевое значение имеет знак '+' (хотелось бы без знака:))

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

>то конструкция вида <font size='14' color='{{color-head}}'> не срабатывает. Можно сделать?

Можно, нужно лишь правильно написать макрос и правильно его использовать
"um:Colors": ["#D042F3"]
<font size='14' color='{{um:Colors}}'>

>при {{*:0f}} нулевое значение имеет знак '+' (хотелось бы без знака:))
:-) Так работает format в питоне. Может быть попозже напишу свой вариант.

>по поводу "...Avg" - можно сделать так, чтобы окраска "средних" при отсутствии конкретной секции с
IMHO - бред. Просто и Avg это сильно разные значения.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Можно, нужно лишь правильно написать макрос и правильно его использовать

"um:Colors": ["#D042F3"]

Отлично! А что делать, если мне надо пять цветов?

        "um:Colors":     ["#000000"],   // Цвет заголовка 
        // "text":     ["#111111"],   // Цвет текста 
        // "num":      ["#222222"],   // Цвет цифровых значений 
        // "item":     ["#333333"],   // Цвет текстовых значений 
        // "XP":       ["#444444"],   // Цвет ХП 

или таким образом можно предопределить только одно значение?

Share this post


Link to post

Short link
Share on other sites

>или таким образом можно предопределить только одно значение?
Совершенно верно

Share this post


Link to post

Short link
Share on other sites

>есть вопрос по вн8 и РЭ

Как Андрюха считает EFF - хз.

 

 

В 9.9 было так:

def calcRatings(self, personal, vehicle, battle):
                result = {}
                winrate = 100.0 if battle['result'] == 1 else 0.0
                vehicleID = int(vehicle['baseID'])
                vehicleLevel = float(vehicle['level'])
                if vehicleID not in self.expBase:
                    result['expWinRate'] = 53.784756447
                    result['expFrag'] = 1.15578796562
                    result['expDamage'] = 890.273724928
                    result['expSpot'] = 1.20659025788
                    result['expDef'] = 1.17670487106
                    expval = result
                else:
                    expval = self.expBase[vehicleID]
                rWIN = winrate / expval['expWinRate']
                rFrag = personal['kills'] / expval['expFrag']
                rDamage = personal['damageDealt'] / expval['expDamage']
                rSpot = personal['spotted'] / expval['expSpot']
                rDef = personal['droppedCapturePoints'] / expval['expDef']
                rWINc = max(0, (rWIN - 0.71) / (1 - 0.71))
                rDAMAGEc = max(0, (rDamage - 0.22) / (1 - 0.22))
                rFRAGc = max(0, min(rDAMAGEc + 0.2, (rFrag - 0.12) / (1 - 0.12)))
                rSPOTc = max(0, min(rDAMAGEc + 0.1, (rSpot - 0.38) / (1 - 0.38)))
                rDEFc = max(0, min(rDAMAGEc + 0.1, (rDef - 0.1) / (1 - 0.1)))
                wn8 = int(980 * rDAMAGEc + 210 * rDAMAGEc * rFRAGc + 155 * rFRAGc * rSPOTc + 75 * rDEFc * rFRAGc + 145 * min(1.8, rWINc))
                wn6 = int((1240 - 1040 / math.pow(min(vehicleLevel, 6), 0.164)) * personal['kills'] + personal['damageDealt'] * 530 / (184 * math.exp(0.24 * vehicleLevel) + 130) + personal['spotted'] * 125 + min(personal['droppedCapturePoints'], 2.2) * 100 + (185 / (0.17 + math.exp((winrate - 35) * -0.134)) - 500) * 0.45 + (6 - min(vehicleLevel, 6)) * -60)
                wn7 = int((1240 - 1040 / math.pow(min(vehicleLevel, 6), 0.164)) * personal['kills'] + personal['damageDealt'] * 530 / (184 * math.exp(0.24 * vehicleLevel) + 130) + personal['spotted'] * 125 * min(vehicleLevel, 3) / 3 + min(personal['droppedCapturePoints'], 2.2) * 100 + (185 / (0.17 + math.exp((winrate - 35) * -0.134)) - 500) * 0.45 - (5 - min(vehicleLevel, 5)) * 125 / (1 + math.exp((vehicleLevel - math.pow(1.0 / 220, 3 / vehicleLevel)) * 1.5)))
                eff = int(float(personal['damageDealt']) * 10 / (float(vehicleLevel) + 2) * (0.23 + 2 * float(vehicleLevel) / 100) + float(personal['kills']) * 250 + float(personal['spotted']) * 150 + math.log(float(personal['capturePoints']) + 1, 1.732) * 150 + personal['droppedCapturePoints'] * 150)
                xeff = 0 if eff < 350 else int(max(min(eff * (eff * (eff * (eff * (eff * (3.388e-17 * eff - 2.469e-13) + 6.9335e-10) - 9.5342e-07) + 0.0006656) - 0.1485) - 0.85, 100), 0))
                xwn6 = 100 if wn6 > 2300 else int(max(min(wn6 * (wn6 * (wn6 * (wn6 * (wn6 * (4.66e-18 * wn6 - 3.2413e-14) + 7.524e-11) - 6.516e-08) + 1.307e-05) + 0.05153) - 3.9, 100), 0))
                xwn7 = 100 if wn7 > 2315 else int(max(min(wn7 * (wn7 * (wn7 * (wn7 * (wn7 * (4.359e-18 * wn7 - 3.262e-14) + 8.6287e-11) - 1.0299e-07) + 6.373e-05) + 0.02439) - 0.58, 100), 0))
                xwn8 = 100 if wn8 > 3400 else int(max(min(wn8 * (wn8 * (wn8 * (wn8 * (wn8 * (9.553e-20 * wn8 - 1.644e-16) - 4.26e-12) + 1.97e-08) - 3.192e-05) + 0.056265) - 0, 157, 100), 0))
                if xeff > 100:
                    xeff = 100
                result['wn6'] = wn6
                result['xwn6'] = xwn6
                result['wn7'] = wn7
                result['xwn7'] = xwn7
                result['wn8'] = wn8
                result['xwn8'] = xwn8
                result['eff'] = eff
                result['xeff'] = xeff
                return result

Мало вероятно что что-то менял

Share this post


Link to post

Short link
Share on other sites

Тут похоже все еще интереснее ;-)

Сделал еще один тест (1 бой):

post-26613-0-36073400-1467719949.png

 

И заглянул в кеш PModa:

"_session": {
	"battles": 1,
	"eff": 218,
	"wn6": 556,
	"wn7": 556,
	"wn8": 931,
},
"battles": {
	"ratings": {
		"eff": 235,
		"wn6": 561,
		"wn7": 621,
		"wn8": 931,
	}
}
Похоже Андрюха где-то накосячил, поскольку за один бой цифры должны совпадать

Share this post


Link to post

Short link
Share on other sites

 

 

IMHO - бред. Просто и Avg это сильно разные значения.
может я не совсем правильно написал:

я имел ввиду, что значения "просто" мы в принципе не ранжируем и они в секциях пороговой окраски никак не задействованы. Нас везде интересует окраска достижений (макросов) исходя из пересчета на бой (либо последний, либо avg). Также активно используется окраска diff'ов. 

Сейчас для однотипных значений (avg и lastbattle - оба для результатов за один бой) используются разные секции (макросы) окраски: для последнего боя секция "просто", а для avg соответственно с окончанием ...Avg

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

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

Share this post


Link to post

Short link
Share on other sites

Чет я тебя совсем не понимаю :-(

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

значения макросов в страничке "LastBattle" (макросы с приставкой Battle) окрашены по коду #D3D3D3. Если вписать в код цвета соответствующий макрос, к примеру {{с:BattleDamageDealt}}, то коды цвета будут браться из секции TimeSpent.json/"colors": { "DamageDealt" }. Для макроса в страничках статистики, к примеру для {{*_DamageDealtAvg}} код цвета будет браться из секции TimeSpent.json/"colors": { "DamageDealtAvg" }. По сути эти макросы (Battle* и *Avg) абсолютно идентичны: отдают значения за один бой, за последний или в пересчете за средний, но за один, а для окраски надо писать две секции цвета. В этом суть "проблемы" и в этом суть моего предложения: объединить секции цвета в одну - под названием с *Avg или без него - как будет удобнее. Наверное, с точки зрения уже написанных конфигов, логичнее переназначить для макросов вида Battle* забор кодов цвета из секций вида *Avg, но мне (имхо) показалось, что без приставок и окончаний названия секций в разделе colors более "приятственны глазу" :)) потому и предложил заменить названия и поменять логику для цветовых секций...

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

Вариант что 1,5К среднего это хорошо, а 1,5К за бой - не очень не рассматривал? ;-)

Share this post


Link to post

Short link
Share on other sites

Вариант что 1,5К среднего это хорошо, а 1,5К за бой - не очень не рассматривал? ;-)

Как вариант рассматривал, но ведь и первоначальное предложение было: брать цвета из секций без окончаний если нет специально вписанной "адресной" секции (с *Avg к примеру), а если такая секция (с приставкой/окончанием) есть, то из нее :)

 

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

 

зы.зы. сейчас "просто" секции не используются в конфиге, "место" так сказать свободно :)) (ну кроме "DamageRating", но он не имеет смысла в значении Avg)

 

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

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

Edited by Kapany3uk

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.

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