Jump to content
Korean Random

SoprachevAK

User
  • Posts

    417
  • Joined

  • Last visited

  • Days Won

    32

Everything posted by SoprachevAK

  1. Сразу мод будет как будто бы запарно Возможно тебя устроит мод на добавление любых виджетов и собственно сам виджет https://wotstat.info/session/widgets/competitive/universal Это если что прямо в игру добавляется Ну и там если поискать, то есть SDK чтоб на js писать свои любые видежты
  2. Yes. Add this cote to end of Games\WOT\res\packages\gui-partX.pkg\gui\gameface\js\index.js window.engine.on('Ready', () => { const style = document.createElement('style'); style.innerHTML = ` .highlight-rect { box-sizing: border-box; position: absolute; border: 2px solid cyan; pointer-events: none; z-index: 100000; display: none; } .info-div { box-sizing: border-box; position: absolute; background-color: rgba(0, 0, 0, 0.7); color: #fff; padding: 10px 10px; border-radius: 10px; pointer-events: none; font-size: 1em; transform: translate(0, -100%); z-index: 100000; line-height: 1.2; } .info-div p { margin: 0; } .target-point { position: absolute; width: 5px; height: 5px; background-color: #ff000059; border-radius: 50%; pointer-events: none; z-index: 100000; } `; document.head.appendChild(style); const highlightRect = document.createElement('div'); highlightRect.className = 'highlight-rect'; document.body.appendChild(highlightRect); const infoDiv = document.createElement('div'); infoDiv.className = 'info-div'; document.body.appendChild(infoDiv); const targetPoint = document.createElement('div'); targetPoint.className = 'target-point'; document.body.appendChild(targetPoint); document.body.addEventListener('mousemove', (event) => { const element = document.elementFromPoint(event.clientX - 15, event.clientY - 30); targetPoint.style.left = `${event.clientX - 15}px`; targetPoint.style.top = `${event.clientY - 30}px`; if (element) { infoDiv.style.left = `${event.clientX + 20}px`; infoDiv.style.top = `${event.clientY - 30}px`; infoDiv.innerHTML = ''; let parent = element; while (parent) { const parentInfo = document.createElement('p'); parentInfo.textContent = `${parent.tagName} > ${parent.className} #${parent.id}`; infoDiv.appendChild(parentInfo); parent = parent.parentElement; } } if (element && element !== document.body && element !== document.documentElement) { const rect = element.getBoundingClientRect(); highlightRect.style.left = `${rect.left}px`; highlightRect.style.top = `${rect.top}px`; highlightRect.style.width = `${rect.width}px`; highlightRect.style.height = `${rect.height}px`; highlightRect.style.display = 'block'; } else { highlightRect.style.display = 'none'; } }); }); gui-partX.pkg is regular zip archive, you can open it using 7zip index.js can be located randomly in gui-part1.pkg or gui-part2.pkg or gui-part3.pkg Html picker is 20px above cursor (small red dot) to prevent hovering
  3. Ну пока нечего писать Нужно больше данных собирать новых, а пока совсем нет времени. Сейчас пробую новый алгоритм, который будет не сортировать игроков по скиллу, обрезать и потом брать их выстрелы, а брать выстрелы, сортировать их по скиллу, и потом обрезать На непопулярных танках получается сильно лучше. А на популярных можно более жесткие фильтры, по типу сетапа боя, наличия лт/арты
  4. Не читов ради, а для статистики исключительно Куда смотреть, чтоб найти поломки деревьев (желательно с направлением) и других разрушаемых объектов? Хочу себе в статистику сколько ёлок поломано, сколько домиков разрушено. Ну и ещё тепловую карту деревьев, которые нужно валить "по скиллу" чтоб создать дополнительный куст в нужном месте.
  5. У тебя там из WgcMetadata создаётся game_info.xml, а мне game_info.xml нужны актуальные версии part_versions.available Посмотрел откуда грузится Metadata, и к сожалению, в ней нет версии https://github.com/Mixaill/galaxy-integration-wargaming/blob/0c72550809cc7b55bafe94381ca729a346ebe63d/wgc/wgc_gameinfo.py#L70 <client_parts> <client_part id="locale" integrity="false" lang="true" /> <client_part id="client" integrity="true" /> <client_part app_type="sd" id="sdcontent" integrity="true" /> <client_part app_type="hd" id="hdcontent" integrity="true" /> </client_parts>
  6. Действительно, спасибо за наводку)
  7. Появилась мысль занять нишу вотреплейс у Лесты, а то его не обновляют Полистал форум, многие за реплеи шарят, подскажите, есть ли удобный способ провалидировать результаты боя, которые в первой строчке json’ом лежат? Кроме как распарсить пакеты реплея и поскладывать значения, опыт таким путём всё равно не проверить Как будто бы, wotreplays как то проверяет, и если в тупую подменить, то реплей не принимается. Может там где нибудь хеш лежит, или ещё лучше цифровая подпись (в чём я очень сомневаюсь)
  8. Ну по идеи Coherent это же либа, и в теории, девтулзы в неё встроены, а в идеале, девтулзы это вообще кусок хрома, а в coherent просто api для девтулзов. Но судя по доке, они тянут их внутрь себя.
  9. Честно говоря, не очень понял почему из скриншота следует, что файлов не будет, но да ладно Спасибо за исследование)
  10. Понял, спасибо Ну наверняка где то есть, но искать слишком запарно. Может припрёт, можно каким нибудь инструментом анализа трафика посмотреть куда лаунчер ходит, он то знает откуда качать актуальную версию
  11. А не подскажешь, где можно взять game_info.xml кроме как в уже установленном клиенте? Хочется полностью автоматизировать, чтоб вообще не трогать
  12. Первичных данных около 330Гб сжатых на диске и 740Гб чистых. Но там ещё есть всякие вторичные для оптимизаций по мелочам
  13. Ну да, и это только за прошлые 20 дней Всего там 660 миллионов попаданий с segment'ом и прочей информацией для восстановления точного попадания (дистанция, дескрипторы стрелка/цели, углы поворота) --------- Думаю это лучшее, что можно получить без проекции на колижен Тут 330к точек на основе 4.7 миллионов выстрелов. Каждая точка берёт усреднённое значение из окрестности 5 сегментов is7.mov
  14. С угловатостью разобрался, оказывается, расстояние между segStart и segEnd может быть очень большое (при острых углах). Раньше я рисовал segStart, вот середина между segStart и segEnd Тут вскрылась другая проблема, всё ещё есть внешние редкие точки, которые перекрывают собой внутренние частые Хорошо видно в разрезе Видимо это может решаться только колижен моделью, которая шейдером будет рисовать на себе кляксу кубоида, который она пересекает. Шейдер то я написать смогу, а вот колижен модели брать тяжеловато. Вариант 2 – через код https://github.com/StranikS-Scan/StranikS_Scan-mods/wiki/Поиск-реальной-точки-попадания на клиенте вычислять наиболее точную точку попадания, тогда они всегда будут лежать на колижене, но старые данные будут неактуальны.
  15. Да. Но там пары [z, x, y] если по hitSegment сдвигать. Пока что меня разочаровывает, что оно слишком плоское, и видимо надо на клиенте вычислять по колижен модели. А это по старым данным уже не сделать
  16. Да Пока более умные метрики по типу пробитий не смотрел Есть такое, но тут тяжело с цветом, его наверное есть смысл логарифмический брать
  17. Корпус и башня, пропорции подбирал на глаз Не очень понятно почему оно такое плоское. НЛД/ВЛД просто вертикальная плоскость, хотя как бдуто бы там должно быть больше одного кубоида.
  18. А вот корпус ИС7 в максимальном разрешении (ну всм каждый кубоид из сегмента. 256х256х256) Хорошо видно НЛД и борт)
  19. Да, вообще должно быть оно. А откуда у тебя compIdx == 12 select bitAnd(bitShiftRight(hitSegment, 8), 255) as compIdx, count(), count() / sum(count()) over () as percent, any(`results.tankTag`[1]) from Event_OnShot where length(results.tankTag) > 0 group by compIdx order by compIdx Вообще на самом деле интересная мысль, мне давно не даёт покоя "тепловая карта попаданий по танку", чтоб прямо поверх 3д модельки была. Но наверное это куда эффективнее делать на клиенте, тк есть вся инфа о габаритах модельки, а в базу записывать например UV координату (это когда 3д модель разворачивают в плоскую текстуру, как например для камуфляжа) Хотя с другой стороны, можно реально 3d heatmap просто из этих hit-segment'тов ------- Ну в принципе вариант рабочий Тепловая карта количества попаданий по startPoint для башни ИС7
  20. Скорее всего надо вот это вписать, но оно не в питоне, скорее всего внутри exe'шника Вроде бы когда то запускали танки в debug моде, не знаю насколько это актуально
  21. Потыкал я Coherent Gameface, как будто бы весьма съедобно В /res/packages/gui-part1.pkg/gui/gameface/js/index.js находится код, который автоматически инжектится во все вьюхи, его можно редачить, и оно работает. Кроме того есть gui-part/gui/gameface/_dist/production/lobby/tanksetup/HangarAmmunitionSetup/HangarAmmunitionSetup.html как точка входа амунации. Ещё есть необфуцированный gui-part/gui/gameface/externalBuilder который как будто бы ищет, индексирует и запускает js моды (но это не точно) Как по мне, оно должно быть сильно легче чем Flash, я удивлён, что в этом никто не разобрался. Попробовал несколько кастомных DevTools, не завелись, но я и не сильно вникал. Написал свой собственный минимальный просмоторщик иерархии под мышкой, но без DevTools мне тяжело, я привык к комфортному миру, где каждую правку не надо перезапускать проект. Получилось даже буковки добавить в нужное место иерархии, но почему то только в первую плитку. Ну и я удивлён сколько всего на нём сделано. Ну там например чисто иконка БП Экипаж который почему то не векторный
×
×
  • Create New...