Jump to content
Korean Random

MoD

User
  • Content Count

    101
  • Joined

  • Last visited

  • Days Won

    6

Posts posted by MoD


  1. Есть какая-то возможность, без xvm и желательно без замены флешек и атласов запихнуть кастомный маркер на миникарту?

    Вообще в какую сторону копать? Не могу в сорцах найти ничего вменяемого.

    Буду благодарен за помощь


  2. On 9/27/2021 at 4:29 AM, SoprachevAK said:

    Вопрос 1. 
    Как лучше получать информацию о нанесённом уроне, чтоб была возможность связать её с выстрелом (как это сделано в моде просмотра попаданий выстрел-результат-урон)?
    Я пока нашел ивент sessionProvider.shared.feedback.onPlayerFeedbackReceived в котором есть в том числе и событие нанесения урона выстрелом

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

    Сейчас жизненный цикл события выстрела такой PlayerAvatar.shoot -> PlayerAvatar.showTracer -> (Vehicle.showDamageFromShot ИЛИ PlayerAvatar.explodeProjectile) -> ProjectileMover.killProjectile. Было бы круто знать информацию о нанесённом уроне на этапе showDamageFromShot

     

    Вопрос 2.

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

    Анализ реальной точки попадания это конечно круто, но в пограничных случаях (+-25% пробития) он может портить точку попадания. Мне кажется, что лучше анализировать ровно ту информацию, которую сервер отправляет игроку. Если рикошет нарисовался там, где должно было быть пробитие, то для игрока это негативные эмоции и «открутка». 

     

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

    Есть ещё

    def onVehicleHealthChanged(self, vehicleID, newHealth, attackerID, attackReasonID)

    Туда приходят данные, когда танк видимый, в круге отрисовки и у него по какой-то причние(attackReasonID) изменилось количество ХП

    список attack reason можно найти в константах

    ATTACK_REASONS = (
     ATTACK_REASON.SHOT,                  #0
     ATTACK_REASON.FIRE,                  #1
     ATTACK_REASON.RAM,                   #2
     ATTACK_REASON.WORLD_COLLISION,       #3
     ATTACK_REASON.DEATH_ZONE,            #4
     ATTACK_REASON.DROWNING,              #5
     ATTACK_REASON.GAS_ATTACK,            #6
     ATTACK_REASON.OVERTURN,              #7
     ATTACK_REASON.MANUAL,                #8
     ATTACK_REASON.ARTILLERY_PROTECTION,  #9
     ATTACK_REASON.ARTILLERY_SECTOR,      #10
     ATTACK_REASON.BOMBERS,               #11
     ATTACK_REASON.RECOVERY,              #12
     ATTACK_REASON.ARTILLERY_EQ,          #13
     ATTACK_REASON.BOMBER_EQ,             #14
     ATTACK_REASON.MINEFIELD_EQ,          #15
     ATTACK_REASON.NONE,                  #16
     ATTACK_REASON.SPAWNED_BOT_EXPLOSION, #17
     ATTACK_REASON.BERSERKER,             #18
     ATTACK_REASON.SPAWNED_BOT_RAM,       #19
     ATTACK_REASON.SMOKE)                 #20
    

    PS гг, помню когда эти ризоны заканчивались на 6 :D

    • Upvote 1

  3. On 9/9/2021 at 5:50 PM, CaneOnore said:

    @MoD мда, я надеялся что там можно выдрать какой-нибудь читабельный json без подключения кода, но видимо не судьба :( У меня на машине только среда разработки под C# стоит, хотел на их базе прочитать, чтобы среду под питон не ставить

    разобрать можно - надо идти по цепочке BattleResultCache.convertToFullForm


  4. 59 minutes ago, CaneOnore said:

    @MoD А есть реализованная распаковка этого чуда юда, а то zlib по умолчанию выдает ошибку с неизвестным методом запаковки

    Там вначале пикл, потом злиб потом снова пикл. Но тебе нужен по факту BattleResultCache и там save, load и converToFullForm


  5. 2 hours ago, Kotyarko_O said:

    Использовать компонент "GUI".
    Пример использования можно найти в этом модике (не рабочая версия уже давно, но по части нужного вам компонента всё должно быть актуально): mod_MultiHitLog.py 

    О, то, что надо. А GUI в картинки умеет?


  6. Во время боя, можно как-то вывести текст и/или картинку на экран? Желательно без всякой магии вроде своей флешки. Может есть какой-то встроенный механизм?

    ЗЫ Я кажется видел что-то похожее, но не могу найти где.


  7. 1 hour ago, Slava7572 said:

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

    На том же Т-45 намеренно стал играть хуже(статистика меня мало интересует по акку) и уже в топ почаще попадать стал,совпадение?Не думаю:sceptic:

    https://docs.google.com/spreadsheets/d/1iJBJfSvDoH47NWPHrO9iOiDHpBL8-jaoy7DfzifHfks/edit#gid=232571049

    тут смотрел - альфа честная, распределение нормальное и нормальное :)


  8. 12 hours ago, KPOT2338 said:

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

     

    з.ы.: А никто не рассматривал вероятности рикошетов/непробилов по шотному (<0.75хп) танку?

    Вот год назад меня и бомбануло, когда у меня была длиииная серия боёв на ELC 90, когда много раз подряд танки не дохли.

    С рикошетами-нипробилами - не игрался, но там походу всё четсно.

    13 hours ago, Slava7572 said:

    кстати,а сколько боев нужно,чтоб косвенно доказать зависимость,их то гораздо меньше чем выстрелов:mellow:

    1000 фрагов надо, по хорошему, минимум. Средний бой заканчивается с 23 фрагами (кажется), 1000/23 = 44 боя. Но есть ньюанс - нормально можно прочекать только то, что попадает в  круг отрисовки - значит надо больше боёв

    5 hours ago, SoprachevAK said:

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

    Могу дать из ~49к реплеев первый блок, с сетапом команд. Прочекть можно


  9. 1 hour ago, KPOT2338 said:

    784252611_.jpg.e17fda04a5d900609a6d1092a8f712b6.jpg

    Оно должно как бы вот и отсюда никуда (без учёта всяких пожаров и взрывов БК)

    Так в том-то и прикол, что получается вот такая картинка

    qx7MKiab183a2d97fa863c82db9bfcf440a199.p

    Сорри за mad skillz

     

    PS Когда разгребу все реплеи и если увижу, что действительно выборка была маленька и всё в порядке с распределением. Тогда извинюсь и запишу опровержение


  10. 3 minutes ago, KPOT2338 said:

     

    Для любого хп от 0,75 до 1,25 по Гауссу легко вычисляется вероятность уничтожения

    Если 25% - 3 сигмы, то дальше всё просто

    Примеры

    Для 0,9 хп танка(-10%) будет 11,5% вероятность выживания (1 из 9)

    Для 1,1 хп танка (+10%) будет 88,5% вероятность выживания (8 из 9)

    Только данных нужно много

    В том-то и прикол, что до тех пор пока ты не можешь уничтожить танк - распределение "честное"

    Как только текущее хп танка в который прилетает >= альфа - у тебя сразу начинается "не честное распределение" - противник скорее всего выживет.


  11. 5 minutes ago, StranikS_Scan said:

     

    Ну круто, курил что было, а видос с трешевым названием типа "Сенсация! Угнетают!" таки запилил. Дык мог не париться просто наврать в видео да и всё. Просмотры бы все равно собрал. Ты уж извини, но я вашего брата называю ютуберы-балаболы, вот именно из-за такого контента.

     

    А реплеи сейчас собираешь откуда? Если с какого-нибудь wotreplays.ru выгружаешь, то опять не репрезентативно, ибо их туда заливают потому что они особенные для тех, кто их залил.

    Свои реплеи, с июля 14 года. На вотреплейс - не суюсь, понимаю, что нерепрезентативно зачастую будут, ибо там сплошной нагиб


  12. On 8/23/2021 at 6:35 PM, CaneOnore said:

    А есть способ быстро подшаманить так, чтобы после каждого боя эти данные падали в файлик?

    Они и так есть: %userprofile%\AppData\Roaming\Wargaming.net\WorldOfTanks\battle_results\*.dat

    чистятся при каждом старте клиента

    внутри жуткая комбинация из из zlib+pickle, ну и всё надо мапить на текущий формат результатов


  13. 1 hour ago, Slava7572 said:

    у меня есть интересная статистика,уже где то боев эдак 1000-2000 по шотному танку никогда урон не проходит(он и раньше редко проходил,но вот где то крайние полгода вообще ни одного),по мне вероятность где то 90%,что будет выше среднего.Раньше я подобное только на арте замечал,танки с уроном 490 ваншотили 9 из 10-ти на какой бы арте не играл,не важно 500(Т92) или 550(ГВЕ),иногда даже 440 хватало..но это ладно,не секрет как разрабы к арте относятся и я не уверен,что это как то к статистике относится,но обычные танки это уже чисто статистическое:sceptic:

     

    Если охота, можешь заглянуть. Ковырял год назад такую стату https://www.youtube.com/watch?v=nyOnSavnjBY шансы добить танк - жуткомаленькие


  14. Не, у тебя не банан. У тебя конус и сечение его.

    У тебя есть точка прицеливания, нормаль в точке прицеливания и вектор последнего сегмента трассера - угол между ними. Это тебе задаёт плоскость П 

    У тебя есть тангенс угла, это как раз угол при вершине конуса. ты размещаешь центр основания конуса в точке прицеливания, высота консуа - расстояние до цели (длинна дуги параболы), потом типа "продляешь консу вниз", и находишь эллипс, который образовывается при пересечении конса и плоскости П. Это тебе даст эллипс.

    Дальше у тебя есть точка попадания снаряда и эллипс -> можно найти насколько сильно оно уехало в сторону

    Но это ещё усложняется тем фактом, что эллипс у тебя может вырождаться в параболу и точка попадания - онато на рельефе, и она не факт что совпадёт с эллипсом. Это по сути с определённой точностью можно только вычислить....

    Тут https://math.stackexchange.com/questions/2638515/how-to-convert-points-in-a-circle-to-points-in-an-ellipse описано как потом точку принадлежащую эллипсу пересчитать для круга

     


  15. По поводу конуса, если всё правильно - тебе надо от последнего сегмента трассера получать угол между нормалью в точке прицеливания и трассером, это тебе даст часть данных для вычисления эксцентриситета, второе что тебе надо это угол привершине конуса, который можно получить зная расстояние и макс величину раброса (или там уже тангенс есть для разброса), а длинна конуса - это длинна параболы, которая от точки выстрела до точки прицеливания. Тут прекрасное видео от 3b1b

     


  16. On 7/23/2021 at 7:26 AM, SoprachevAK said:

    Собственно внимание вопрос, как к человеку, куда лучше знакомому с игровыми механиками, как расположен конус разброса у САУ? Кажется что не так, как у обычных танков, и если да, то ещё от какого расстояния у них зависит фактический размер круга разброса?

    Ходят слухи, что у арты круг разброса == кругу сведения

     

    On 7/23/2021 at 7:26 AM, SoprachevAK said:

    Сейчас я нахожу точку пересечения траектории трассера с плоскостью заданной нормалью от маркера до пушки в момент выстрела. Для арты это не работает.

    Не знаю как точно ты считаешь, можешь попробовать апроксимировать сразу после первого сегмента трассера - так у тебя будет почти идеальный круг, соответственно - это тебе даёт плоскость, на которой 2 точки - центр круга и пересечение трассера с этим кругом. Т.е. ты можешь посчитать оклонение

     

    ЗЫ Если охота - пободайся с распредением урона на добивании. Бери ХП танка по которому есть выстрел, который теоретически мог его уничтожить, выкидывай фугасы из расчётов и смотри на распределение урона. Там интересно - если урон снаряда ниже текущего ХП танка - почти никогда не будет фрага.

×
×
  • Create New...